java返回自定义中介输出中的列表对象
我有一个自定义的中介,这个中介的结果是一个列表对象,叫做“agenciesResult”
这就是Java代码
package com.quangnam.example;
import java.util.List;
import org.apache.synapse.MessageContext;
import org.apache.synapse.mediators.AbstractMediator;
import com.vpcp.services.AgencyServiceImp;
import com.vpcp.services.model.Agency;
import com.vpcp.services.model.GetAgenciesResult;
public class AgenciesListMediator extends AbstractMediator {
public boolean mediate(MessageContext context) {
getAgenciesList(context);
return true;
}
private void getAgenciesList(MessageContext context) {
AgencyServiceImp agencyService = new AgencyServiceImp();
String jsonHeader = "{}";
GetAgenciesResult getAgenciesResult = agencyService.getAgenciesList(jsonHeader);
List<Agency> agenciesList = getAgenciesResult.getAgencies();
context.setProperty("agenciesResult", agenciesList);
}
}
我如何定义payloadFactory的输出
{"data": [
{
"code":"1",
"name":"abc"
},
{
"code":"2",
"name":"def"
}
]}
我正在努力
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="agenciesListSeq" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<class name="com.quangnam.example.AgenciesListMediator"/>
<property expression="$ctx:agenciesResult" name="result" scope="default" type="STRING"/>
<foreach id="foreach_1" expression="$ctx:agenciesResult">
<sequence>
<payloadFactory media-type="json">
<format>{
"code" : "$1",
"name" : "$2"
}
</format>
<args>
<arg evaluator="json" expression="$.code"/>
<arg evaluator="json" expression="$.name"/>
</args>
</payloadFactory>
</sequence>
</foreach>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<respond/>
</sequence>
但我有个错误
[2018-11-15 16:43:29,237] [EI-Core] ERROR - SequenceMediator com.vpcp.services.model.Agency cannot be cast to org.apache.axiom.om.OMNode
java.lang.ClassCastException: com.vpcp.services.model.Agency cannot be cast to org.apache.axiom.om.OMNode
at org.apache.synapse.mediators.builtin.ForEachMediator.getDetachedMatchingElements(ForEachMediator.java:281)
at org.apache.synapse.mediators.builtin.ForEachMediator.mediate(ForEachMediator.java:108)
请帮我解决或者给我一些文件。谢谢
共 (0) 个答案