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