Apache Camel。Send empty body ws

问题描述 投票:0回答:2

我如何使用Apache Camel调用一个空消息体的SOAP Web服务?

例如,路由的最终端点将是调用我的代理服务器上的一个方法,该方法需要0个参数。

EDIT:

xml配置的例子。

<route id="someRoute">
            <from uri="ref:activemq-queue"/>
            <setHeader headerName="operationName">
                <constant>invoke</constant>
            </setHeader>
            <to uri="cxf:bean:someWS"/>
</route>

...

<cxf:cxfEndpoint id="someWS" address="${ws.address}"
                     serviceClass="com.example.ws.SomeWS"

问题是WS上的 "invoke "方法需要0个参数 然后就会出现一个异常,说正在接收1个参数。有没有办法让我指定忽略这个接收到的输入?

cxf apache-camel
2个回答
1
投票

你可以将消息体设置为空,如果调用只需要0个参数的话。null简单表达式是从camel 2.12.3开始添加的。

<route id="someRoute">
            <from uri="ref:activemq-queue"/>
            <setBody>
               <simple>null</simple>
            </setBody>
            <setHeader headerName="operationName">
                <constant>invoke</constant>
            </setHeader>
            <to uri="cxf:bean:someWS"/>
</route>

0
投票

我也需要给Apache Camel xml设置一个空的body,下面的解决方案对我来说是可行的。

        <setBody id="set-empty-body">
            <constant/>
        </setBody>

希望对需要的人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.