【发布时间】:2018-09-29 07:35:31
【问题描述】:
Ashish 又来了。
我开发了一个路由来解析传入的 SOAP 请求并记录请求中的一些信息。 我使用标头和 XPATH 从 SOAP 服务请求中获取信息。该路由成功解析并记录了相应的信息。
路线如下:
<route streamCache="true">
<from uri="<some URI>"/>
<setHeader headerName="SOAPAction">
<constant>http://www.something.com/constant>
</setHeader>
<setHeader headerName="actionId">
<xpath resultType="java.lang.String">//ws:actionId/text()</xpath>
</setHeader>
<choice>
<when>
<xpath>//ws:actionId = '1'</xpath>
<to ref="callService" />
</when>
<otherwise>
<log message="Wrong Action ID : ${in.headers.actionId}"
loggingLevel="ERROR"/>
</otherwise>
</choice>
</route>
根据逻辑,如果 actionId 为 1,路由必须重定向到 callService URI,否则它应该记录错误的 action Id 而没有任何响应。
如果 actionId 为 1,则该逻辑有效,它重定向到 callService 并向调用者发送适当的响应。如果 actionId 不是 1,它会用 action Id 写入关于错误 action Id 的日志,但它会向调用者发送与响应相同的请求。
我使用soapUI和Java Socket Programming检查了它。但是输出是一样的,准确地记录了actionId但是向调用者发送了相同的请求作为响应。
我不希望与响应相同的请求。响应必须为空白。
谁能帮我找到解决办法。
问候,
阿什
【问题讨论】:
标签: apache-camel apache-servicemix fuseesb