普元EOS生成WebService时使用自定义实体映射属性

概述

最近使用普元EOS(下面简称EOS),制作Web Service接口供其他系统调用时发现, 使用EOS的DataObject作为入参报错, 按官方文档的示例也依然报错, 错误原因难以查找,便产生自己写一个JavaBean来实现自定义参数入参的问题, 但是JavaBean中由于按照驼峰式命名的规范, 在直接生成Web Service时xml的节点也同样会以驼峰的形式显示,而我的需求是节点显示成下划线分隔并且是大写英文。经过我搜集查询资料发现是有方法可以映射的。

解决方法

由于EOS中集成了XFire,因此我们需要在自定义的JavaBean同目录下新建一个与JavaBean同名称的.aegis.xml文件,例子如下,假设我们需要一个Product类作为JavaBean,目录结构及代码如下:

package com.primeton.eos;

public class Product {
	private String productName;
	private String producePlace;
	private Integer price;

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public String getProducePlace() {
		return producePlace;
	}

	public void setProducePlace(String producePlace) {
		this.producePlace = producePlace;
	}

	public Integer getPrice() {
		return price;
	}

	public void setPrice(Integer price) {
		this.price = price;
	}
}

而在同目录里下生成Product.aegis.xml

<?xml version="1.0" encoding="UTF-8"?>
<mappings>
	<mapping name="PRODUCT">
		<property name="price" mappedName="PRICE"/>
		<property name="producePlace" mappedName="PRODUCE_PLACE"/>
		<property name="productName" mappedName="PRODUCT_NAME"/>
	</mapping>
</mappings>

右键逻辑构件(构件名称为CustomerManagement.componentType),生成Web Service,而生成的wsdl文件时,如果生成后的节点显示为in0,in1,可修改生成后的wsdl为指定名称,如下例子由in0修改为PRODUCTS,访问的节点也会随机改变

入参映射到我们的JavaBean类的配置就完成了。

参考链接

普元EOS技术文档-Web Service开发
在Java中使用XFire配置文件aegis开发Web服务

原文地址:https://www.cnblogs.com/runningRookie/p/14348230.html