java - 在有效负载模式下从 Camel 处理器返回的空 SOAP 体

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

我正在创建 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/

相关文章:

java - 删除文件时通知 Apache Camel

java - JScrollPane 不会更新 JSplitPane 上的 JScrollBar

java - java中是否有像微软同步框架这样的同步框架或算法

java - 如何获取对匿名对象的引用 2 级

java - 解码 XmlType 以在 Java 中进行单元测试

java - 通过java代码向Spring 3添加组件

soap - Camel 和CXF : How to get the outbound message?

java - 将表单提交到 Struts 操作后,在 DisplayTag 上将页面设置为 1

.net - 在 IIS 中部署 .PDB 文件。有什么好处吗?

android - 是否可以从 android 调用 WSHTTPBINDING?