从有效负载模式下的Camel处理器返回空肥皂体

时间:2014-12-03 14:07:47

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

我正在创建cxf webservice首先,cxf端点将获得一个调用,然后它以有效载荷模式传递给camel路由,并且首先在camel路由中取消请求并在此之后进行一些处理它返回响应

但是当我回复时,我的身体变空了。虽然所有数据都在日志中正确显示。

我是否需要处理器将其更改为肥皂信息。

<from uri="cxf:bean:cardServiceCall?dataFormat=PAYLOAD" />
<camel:unmarshal ref="jaxb" />
<camel:process ref="ResponseProcessor"></camel:process>
<camel:marshal ref="jaxb" />

Upadte 我开始知道我必须对其进行编组,但在编组时我得到JAXB编组错误XMLRootElement annontation缺失错误

1 个答案:

答案 0 :(得分:1)

我解决了这个问题,实际上我的架构中存在问题。

我已经为我的复杂类型命名,并且使用该名称引用的元素类型不正确。你应该像下面这样做

 <xsd:element name="myRequest">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="cardNumber" type="xsd:long" />
            <xsd:element name="transactionNumber" type="xsd:long" />
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>