gpt4 book ai didi

java - 客户端与服务的单独 cxf 拦截器配置?

转载 作者:行者123 更新时间:2023-12-01 05:06:58 25 4
gpt4 key购买 nike

我有一些使用 Apache CXF 运行的 Web 服务,并使用 cxf:outInterceptors 注册了一个特定的自定义出站拦截器。此拦截器旨在当响应返回到 Web 服务客户端时执行。

<cxf:bus>
<cxf:outInterceptors>
<ref bean="myCustomInterceptorOutbound" />
</cxf:outInterceptors>
<cxf:inInterceptors>
</cxf:inInterceptors>
<cxf:features>
<cxf:logging />
</cxf:features>
</cxf:bus>

但是,如果我的某个 Web 服务最终调用一个单独的远程 Web 服务,我不希望在这种情况下调用该出站拦截器。

有没有办法为 jaxws:client (或 JaxWsProxyFactoryBean)指定不同的拦截器配置,即告诉“不使用”通过 cxf:bus 注册的拦截器?或者我是否需要从 cxf:bus 中删除拦截器并在每个 jaxws:endpoint 上单独注册它?

最佳答案

为每个客户端/服务器单独添加拦截器。例如

<jaxws:client 
serviceClass="no.bring.booking.Booking"
address="${bring.booking.webservice}" id="booking">
<jaxws:inFaultInterceptors>
<ref bean="loggingInInterceptor" />
</jaxws:inFaultInterceptors>
<jaxws:inInterceptors>
<bean class="com.greenbird.xmlformatter.cxf.LoggingInInterceptor">
<property name="prettyLogging" value="true" />
<property name="prettyPrinter" ref="prettyPrinter" />
</bean>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<bean class="com.greenbird.xmlformatter.cxf.LoggingOutInterceptor">
<property name="prettyLogging" value="true" />
<property name="prettyPrinter" ref="prettyPrinter" />
</bean>
</jaxws:outInterceptors>
<jaxws:outFaultInterceptors>
<ref bean="loggingOutInterceptor" />
</jaxws:outFaultInterceptors>
</jaxws:client>

并通过将一些拦截器声明为 bean 来共享它们。

关于java - 客户端与服务的单独 cxf 拦截器配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com