2016-06-11 19 views
2

Ich habe Interceptor nur in cxf_client.xml hinzugefügt, aber der gleiche Interceptor ruft auch eingehende Apis auf (d. H. Cxf_server). unten sind meine Änderungen. Kann mir jemand sagen, warum diese Interceptor für eingehende APIs aufrufen? ist es, weil der gleiche Bus für Server und Client verwendet?CXF-Interceptors nur für Client mit Konfiguration

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>* 

Antwort

1

Weil Sie

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

prüfen Dokumentation http://cxf.apache.org/docs/bus-configuration.html

inInterceptors verwenden Die Abfangjäger beigetragen eingehende Nachricht Abfangketten. Eine Liste von s oder s

Sie spezifische Abfangjäger für eingehende Verbindungen und ausgehende Verbindungen in Server- und cliente

Zum Beispiel verwenden können, hier ist die Konfiguration eines JAX-WS-Endpunkts und Client mit in und out Interzeptoren

<!-- 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> 
+0

Dank so können wir es nur für den Kunden machen? Für Server, die wir für jeden Endpunkt hinzufügen können, stellt CXF ähnliche für den Client bereit. – user5417198

+0

Sie können den Interceptor als Client für ausgehende Verbindungen verwenden. Und ein anderer Interceptor für eingehende Verbindungen. Aber wenn Sie für jeden Endpunkt feinkörnige Konfiguration wünschen, können Sie Filter verwenden, die im jax-rs-Server konfiguriert sind, um die Anfrage vorzuverlegen oder die Antwort zu posten. – pedrofb

+0

Danke, dass ich javaws benutze, meinen Sie Interzeptor durch pragmatisch hinzufügen? – user5417198

Verwandte Themen