Ah, well, I did finally find the jaxws:handlers element, which lets me
hook in the JAX-WS handler class.  So that's working now.  Whew!

Interestingly, it seems to be called *after* the CXF interceptors.
But I guess that's OK.

Next question: Is there any way to insert a handler/interceptor before
the JAXB marshalling/unmarshalling is done?

Thanks,
      Aaron

On Wed, Nov 19, 2008 at 5:26 PM, Aaron Mulder
<[EMAIL PROTECTED]> wrote:
> I'm using a Spring (2.5.6) CXF (2.1.3) service set up with something like 
> this:
>
>    <jaxws:endpoint
>            id="soapService"
>            implementor="#myService"
>            address="/MyService" />
>
> I'd like to add a filter/interceptor/handler to read some arbitrary
> SOAP headers and decide whether to let the processing continue.  The
> WSDL/Schema for the service is ignorant of these headers and their
> associated data types.
>
> I first tried to add a CXF interceptor like this:
>
>    <jaxws:endpoint
>            id="soapService"
>            implementor="#myService"
>            address="/MyService">
>        <jaxws:inInterceptors>
>            <ref bean="testSoapInterceptor" />
>        </jaxws:inInterceptors>
>   </jaxws:endpoint>
>
> But this interceptor sees NO headers at all (it gets an empty list
> from SoapMessage.getHeaders()).  I wonder if that's because they're
> not in the schema so JAXB doesn't know how to decode them?
>
> Anyway, then I tried adding a JAX-WS handler.  I marked up my service
> implementation bean like this:
>
> @HandlerChain(file="soapHandlers.xml")
> public class MyServiceImpl implements MyService {
> ...
>
> Then I created a soapHandlers.xml in the same package directory as that class:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <jws:handler-chains xmlns:jws="http://java.sun.com/xml/ns/javaee";>
>    <jws:handler-chain>
>        <jws:handler>
>            <jws:handler-class>sample.soap.ServerHandler</jws:handler-class>
>        </jws:handler>
>    </jws:handler-chain>
> </jws:handler-chains>
>
> But this just seems to be ignored.  At runtime I get no messages about
> the JAX-WS handler being created or applied, and I get no output from
> the hander's handleMessage method at all.
>
> I'm running out of ideas.  What's the best way to do this?
>
> Thanks,
>      Aaron
>

Reply via email to