CXF 拦截器仅供客户端使用配置

CXF interceptors only for client using configuration

我只在 cxf_client.xml 中添加了拦截器,但同样的拦截器也在调用传入的 API(即 cxf_server)。以下是我的更改。 有人可以告诉我为什么这个拦截器正在调用传入的 API 吗? 是否因为服务器和客户端使用相同的总线?

cxf_client.xml

  <bean id="XCustomInterceptor" class="com.test.XCustomInterceptor"/>
<cxf:bus>
        <cxf:inInterceptors>
            <ref bean="XCustomInterceptor"/>
        </cxf:inInterceptors>
        <cxf:outInterceptors>
            <ref bean="XCustomInterceptor"/>
       </cxf:outInterceptors>
    </cxf:bus>*

因为您正在使用

<cxf:inInterceptors>
     <ref bean="XCustomInterceptor"/>
</cxf:inInterceptors>

检查文件 http://cxf.apache.org/docs/bus-configuration.html

inInterceptors The interceptors contributed to inbound message interceptor chains. A list of s or s

您可以对服务器和客户端中的入站连接和出站连接使用特定的拦截器

例如,这里是一个jax-ws端点和客户端的配置,带有in和out拦截器

<!-- The SOAP endpoint --> 
<jaxws:endpoint
   id="helloWorld"
   implementor="demo.spring.HelloWorldImpl"
   address="http://localhost/HelloWorld">
   <jaxws:inInterceptors>
      <ref bean="customInInterceptor"/>
    </jaxws:inInterceptors>
   <jaxws:outInterceptors>
      <ref bean="customOutInterceptor"/>
   </jaxws:outInterceptors>

</jaxws:endpoint>

<!-- The SOAP client bean -->
<jaxws:client id="helloClient"
            serviceClass="demo.spring.HelloWorld"
            address="http://localhost/HelloWorld">
    <jaxws:inInterceptors>
        <ref bean="customClientInInterceptor"/>
    </jaxws:inInterceptors>
    <jaxws:outInterceptors>
        <ref bean="customClientOutInterceptor"/>
    </jaxws:outInterceptors>
 </jaxws:client>