从soap Web服务返回列表或数组(cxf)

时间:2016-01-26 11:58:22

标签: java web-services soap apache-camel cxf

需要从Web服务获取列表或数组(cxf,我使用蓝图)。下面是WSLD,代码和堆栈跟踪。我试图使用Object []但得到类似的错误。

如何修复此代码?

to_digits

POJO:

public class Bean implements Service{

    public Pojo[] get() {
        Pojo p1 = new Pojo();
        Pojo p2 = new Pojo();
        p1.setName("1");
        p1.setAge("11");
        p2.setName("2");
        p2.setAge("22");
        return new Pojo[]{p1,p2};
    }
}

蓝图:

@XmlRootElement
public class Pojo {
    private String name;
    private String age;
//get's, setter's
}

在camel之后:运行并发送请求,我得到这个堆栈跟踪

<cxf:cxfEndpoint id="endPoint" address="http://localhost:9292/test" serviceClass="one.Service" />
<bean id="bean" class="one.Bean" />
<camelContext id="blueprintContext" trace="false" xmlns="http://camel.apache.org/schema/blueprint">
  <route id="cxfRoute">
      <from uri="cxf:bean:endPoint"/>
      <log message="${header.operationName}"/>
      <recipientList>
          <simple>direct:${header.operationName}</simple>
      </recipientList>
  </route>
  <route id="get">
      <from uri="direct:get"/>
      <bean method="get" ref="bean"/>
  </route>
</camelContext>

2 个答案:

答案 0 :(得分:0)

老兄,我不确定我是否理解了这个问题,但你的堆栈跟踪说该程序正在期待一个&#34; Lone.Pojo&#34;由于某种原因不是&#34; one.Pojo&#34;就像蓝图一样 - 这就是为什么你可能会得到IllegalArgumentException。不确定这是否会有所帮助,也许你拼错了。

答案 1 :(得分:0)

我没有找到答案,所以尝试过,而且它有效。我不知道这是多么正确。

public class Xtype {
    Pojo[] currs;

    public Pojo[] getCurrs() {
        return currs;
    }

    public void setCurrs(Pojo[] currs) {
        this.currs = currs;
    }
}

&安培;&安培;

public interface CurrService {
    Xtype date() throws Exception;
}