There really are two options:

1) You can add the interceptors to the individual services that are deployed 
on the servlet.   Each "<jaxws:endpoint>" has inInterceptor configuration as 
well.   If there are only a few services, that's probably the easiest.

2) You can create a second Bus and reset the default bus for the thread around 
the client/dispatch creation calls.   Kind of like:


private Bus clientBus  = BusFactory.newInstance().createBus();
 ...

   Bus orig = BusFactory.getThreadDefaultBus();
   try {
       BusFactory.setThreadDefaultBus(clientBus);
       ... do all the dispatch stuff ...
   } finally {
       // set back the orig which should be the Bus that the servlet is using
       BusFactory.setThreadDefaultBus(orig);
   }


Dan




On Mon June 15 2009 6:39:18 pm Kevin Conaway wrote:
> My application both receives incoming web service requests using the CXF
> Servlet over Jetty and makes outgoing web service requests using the JAX-WS
> dynamic dispatch API.
>
> I have an "in" interceptor that I would  like to be invoked only on
> requests that come over the CXF Servlet.  However, the way I have it
> configured ensures that it gets called by both incoming requests and the
> response from outgoing JAX-WS dynamic dispatch calls:
>
>     <cxf:bus>
>         <cxf:inInterceptors>
>             <bean class="com.mycompany.MyInterceptor"/>
>         </cxf:inInterceptors>
>     </cxf:bus>
>
> Is there a way to configure the interceptor in Spring to only be applied to
> incoming web service calls over the CXF servlet?
>
> Thanks

-- 
Daniel Kulp
[email protected]
http://www.dankulp.com/blog

Reply via email to