艾希什又来了。
我开发了一个路由来解析传入的 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,它会使用操作 ID 写入有关错误操作 ID 的日志,但它会向调用者发送相同的请求作为响应。
我使用soapUI和Java Socket Programming对其进行了检查。但是输出是相同的,准确地记录了actionId,但是向调用者发送了相同的请求作为响应。
我不希望与响应相同的请求。响应必须为空白。
任何人都可以帮我找到解决方案。
问候,
阿什什