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