在骆驼中 cxf 输出拦截器后处理



>我有一条以 cxf 端点开头的路由,如下所示:

<cxf:cxfEndpoint id="CXFTest" address="/javainuse/learn"
endpointName="a:SOATestEndpoint" serviceName="a:SOATestEndpointService"
serviceClass="com.javainuse.SOATestEndpoint"
xmlns:a ="http://javainuse.com">
<cxf:binding>
<soap:soapBinding mtomEnabled="false" version="1.2" />
</cxf:binding>
<cxf:features>
<wsa:addressing  xmlns:wsa="http://cxf.apache.org/ws/addressing"/>
</cxf:features>
<cxf:inInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
<bean class="org.apache.cxf.ws.security.wss4j.DefaultCryptoCoverageChecker" />
<ref bean="TAXWSS4JInInterceptorBean" />            
</cxf:inInterceptors>
<cxf:inFaultInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
<bean class="org.apache.cxf.ws.security.wss4j.DefaultCryptoCoverageChecker" />            
<ref bean="TAXWSS4JInInterceptorBean" />            
</cxf:inFaultInterceptors>
<cxf:outInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
<ref bean="TAXWSS4JOutInterceptorBean" />
</cxf:outInterceptors>
<cxf:outFaultInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
<ref bean="TAXWSS4JOutInterceptorBean" />
</cxf:outFaultInterceptors>
</cxf:cxfEndpoint>

<camelContext xmlns="http://camel.apache.org/schema/spring">
<camel:route>
<camel:from uri="cxf:bean:CXFTest" />
<to uri="bean:processor"/>
</camel:route>
</camelContext>

我有几个 out 拦截器,我可以在其中处理。 现在,当路由完成时,输出拦截器的响应交叉,但我想在处理 out intercepotrs 后将我的消息发送到队列。 我该怎么做?

您的 Camel 路由不能,因为进出拦截器由 CXF "包裹"您的客户端或服务器实现。根据设计,端点实现(您的 Camel 路由(不需要关心它们。

如果要在第一个侦听器之前操作请求或操作最后一个侦听器之后的响应,则必须自行实现作为第一个/最后一个侦听器运行的CXF 侦听器

输入和输出有多个阶段,您可以将拦截器附加到,以告诉 CXF 何时执行它。

相关内容

  • 没有找到相关文章

最新更新