users@jax-rpc.java.net

Re: JAX-WS 2.0: SOAP handlers don't work

From: Bobby Bissett - Javasoft <Robert.Bissett_at_sun.com>
Date: Thu, 06 Oct 2005 15:00:12 -0400

>
> It works, thank you. How can I specify the name of the handler chain in
> the new schema? Is this conception (name) obsoleted now?

Yes, there is no concept of the handler chain name in the new schema.
The specs are not final yet, but it is expected that you will be able to
provide multiple handler chains (thus the <handler-chains> element
around the chain) and specify whether they apply to the whole service or
just certain ports or protocols. Will send more information soon to the
list.

>
> but in context.put() occurs the following exception (excerpt from Tomcat logs):
>
> ----------
> 06.10.2005 12:25:26 com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher getResponse
> SEVERE: javax.xml.namespace.QName
> java.lang.ClassCastException: javax.xml.namespace.QName
> at service3.handlers.TimeMeasurementHandler.handleMessage(Unknown Source)
> at service3.handlers.TimeMeasurementHandler.handleMessage(Unknown Source)
> at com.sun.xml.ws.handler.HandlerChainCaller.callProtocolHandlers(Unknown Source)
>[...]

I don't see the put() call in that stack trace, so I suspect some other
line in your handler is causing the error. To be safe, I pasted that
same put() call into one of my own handlers and it ran fine.

You may want to try putting a try/catch around all the code inside your
handleMessage() method to print a stack trace, and/or generate the
TimeMeasurementHandler class with debug turned on to get the exact line
numbers. (Starting with this week's weekly build, there should also be
line numbers in the jax-ws ri code as well.)

Cheers,
Bobby