我正在创建 cxf webservice 首先,cxf 端点将收到一个调用,然后它以有效负载模式传递到 Camel 路由,在 Camel 路由中,我首先解码请求并执行一些处理,然后它重新调整响应
但是当我返回响应时,我得到的是空的 body 。虽然所有数据都正确显示在日志上。
我是否需要处理器将其更改为肥皂消息。
<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 缺失错误
最佳答案
我解决了这个问题,实际上我的架构有问题。
我已经为我的复杂类型指定了名称,并使用该名称引用了元素类型,但这是不正确的。你应该像下面这样做
<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>
关于java - 在有效负载模式下从 Camel 处理器返回的空 SOAP 体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27273775/