概述
最近使用普元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类的配置就完成了。