有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案