环境:xfire 1.2.6
1. 接口
接口的返回值原先是用 Map<String, MeasureTypeVO>的,但是好像 xfire 的返回值不支持复杂的对象,
所以改成将 Map<String, MeasureTypeVO> 设置成对象 MeasureTypeDTO 的一个属性
public MeasureTypeDTO getMeasureTypes(String reqSeq, List<String> cimIdList) throws Exception;
2. 接口.aegis.xml
<?xml version="1.0" encoding="UTF-8"?> <mappings> <mapping> <method name="getMeasureTypes"> <parameter index="0" mappedName="reqSeq" /> <parameter index="1" mappedName="cimIdList" componentType="java.lang.String" /> <return-type componentType="com.techstar.plat.webservice.dto.MeasureTypeDTO" /> </method> </mapping> </mappings>
由于接口的第二个参数是个 List ,所以在第二个<parameter>中需要写上
componentType="List泛型中的对象",如 componentType="java.lang.String"
3. 实现方法
public MeasureTypeDTO getMeasureTypes(String reqSeq, List<String> cimIdList) throws Exception { Map<String, MeasureTypeVO> map = MeasureTypeService.getInstance() .getMeasureTypes(cimIdList); MeasureTypeDTO dto = new MeasureTypeDTO(); dto.setMap(map); return dto; }
4. dto 类 MeasureTypeDTO
public class MeasureTypeDTO { private Map<String, MeasureTypeVO> map; public Map<String, MeasureTypeVO> getMap() { return map; } public void setMap(Map<String, MeasureTypeVO> map) { this.map = map; } }