This is definitely a hack, i don't recommend using it this way. Do you want to experiment a bit with MsgProvider? It's designed specifically for delivering the DOM to your service.
-- dims On Tue, 27 Jul 2004 15:03:20 +0200, Jean-Francois Denise - Sun Microsystems <[EMAIL PROTECTED]> wrote: > I found a problem when accessing header. > > Context : webservices exposed dynamicaly (WSDL and implementation). > > In order to define which service is in the scope of a received request, > I need to access an Header. > > I access the header when Axis calls my own instance of > EngineConfiguration.getService(QName name). > > I use Message.getSOAPEnvelope().getHeaderByName(...) I noticed that > calling getSOAPEnvelope launches the full message deserialization. The > body is also deserialized. > > In case of WRAPPED/LITERAL this is a problem. The metadata (mainly types > of the service operations) used to create the service ServiceDesc > are not known when this deserialization occurs. Axis is deserializing > the literal values in "best effort" (String for simple types, ...) > > I perhaps access the header in the wrong place. This could sound strange > but I need to access the header in order to findout what is the service. > > I found a way to do it but it smells the hack... I create a new Message > from the received one. Call getSOAPEnvelope() on the newly created one. > The deserialization is done twice... > > Message msg = msgContext.getRequestMessage(); > Message msg2 = new Message(msg.getSOAPPartAsString()); > SOAPEnvelope env = msg2.getSOAPEnvelope(); > > Regards. > > -- > ---------------------------------------------------------------------- > Jean-Francois Denise Sun Microsystems > Sun ONE/Java Web Services > email: [EMAIL PROTECTED] > Internal home page : http://icncweb.france/~jfdenise > ------------------------------------------------------------------- > > -- Davanum Srinivas - http://webservices.apache.org/~dims/
