Could options:

1) You could use a separate bus for the client calls.  In your code, you would 
do something like :

BusFactory.setDefaultBus(null);  BusFactory.setThreadDefaultBus(null);

before creating the client.  That should force the creation of a new bus for 
the client with defaults.

2) Configure your interceptors  on the jaxws:endpoint things instead of the 
bus.   Just stick them on the endpoints where they are needed.    

3) Modify the interceptors to check if it's a requestor and pretty much skip 
whatever they are doing.     Just add:

if (MessageUtils.isRequestor(message)) {
    return;
}

to the handleMessage calls. 


Dan




On Wednesday 02 June 2010 11:08:14 am Chris Hardin wrote:
> I have the config below. I have a huge problem though. The interceptors are
> not only firing when someone calls my services, they also fire when I call
> another service. I only want these interceptors to fire for the services
> that I have exposed and not the ones I call out to another ESB for.
> 
>  <cxf:bus>
> 
>     <cxf:inInterceptors>
>            <ref bean="timerIn"/>
>             <ref bean="openSessionIn"/>
>         </cxf:inInterceptors>
>         <cxf:outInterceptors>
> 
>             <ref bean="openSessionOut"/>
>               <ref bean="timerOut"/>
>        </cxf:outInterceptors>
> 
>         <cxf:features>
>              <cxf:logging />
>            <cxf:fastinfoset/>
> <!--           <ref bean="gzipFeature"/>-->
> 
>         </cxf:features>
> 
>         <cxf:properties>
> 
>           <entry key="schema-validation-enabled" value="false" />
>         </cxf:properties>
> 
>     </cxf:bus>

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

Reply via email to