2016-06-16 6 views
0

Ich habe eine Deklaration im Frühjahr zwei Dienste, die auf der gleichen Adresse bereitgestellt werden. Ich möchte den Fehlerabfanger für nur einen von ihnen erklären, aber gibt es einen einfachen Weg, dies zu tun, ohne die Adresse für zwei Dienste zu ändern? Ich möchte sie an der gleichen Adresse haben.Cxf Failure Interceptor für eine Service-Bean in Multi-Bean-Service

<jaxrs:server id="service" address="http://0.0.0.0:${service.port:7070}/"> 
     <jaxrs:serviceBeans> 
      <ref bean="firstService"/> 
      <ref bean="secondService"/> 
     </jaxrs:serviceBeans> 

     <jaxrs:outInterceptors> 
      <ref bean="failureInterceptor" /> 
     </jaxrs:outInterceptors> 

     <jaxrs:features> 
      <cxf:logging/> 
      <ref bean="commonValidationFeature"/> 
     </jaxrs:features> 
     <jaxrs:providers> 
      <ref bean="jsonProvider"/> 
     </jaxrs:providers> 
    </jaxrs:server> 

Antwort

1

Sie erklären können zwei JAX-RS-Server, jedes mit seinen eigenen Abfangjäger, wenn Sie

Zum Beispiel leicht den relativen Pfad der Dienste anpassen können, können Sie sowohl in äquivalente Weise verwenden

<jaxrs:server id="ServiceAImpl" address="/test/a"> 
<jaxrs:server id="ServiceBImpl" address="/test/b"> 

<jaxrs:server id="serviceImpl" address="/test"> 
    <jaxrs:serviceBeans> 
     <ref bean="serviceABean"/> <!-- /test/a service --> 
     <ref bean="serviceBBean"/> <!-- /test/b service --> 

aber es darf nicht

<jaxrs:server id="ServiceAImpl" address="/test"> 
<jaxrs:server id="ServiceBImpl" address="/test"> 

Wenn es Ihnen nicht möglich ist, könnten Sie d etermine am Interceptor, der die Quelldienst-Bean (Analysemethodename oder uri) ist, und feuere den spezifischen Interceptormanager

Verwandte Themen