dev@jax-ws.java.net

Re: StreamMessage.copy() for multiple parts in a SOAP message body

From: Vivek Pandey <Vivek.Pandey_at_Sun.COM>
Date: Tue, 09 Jan 2007 09:09:09 -0800

The case we are trying to solve here is a jaxws Dispatch<SOAPMessage>
client or a SOAP message request coming from a non-jaxws client to JAXWS
endpoint.

Starting from WSDL and generating a client or server artifacts would
require you to have only one body part bound to soap body for
Document/Literal style binding..

-vivek.

LeRoy Hall wrote:
> Perhaps I'm missing something, but I'm pretty sure that binding
> multiple parts to a body in a WSDL directly relates to having a soap
> message with multiple parts.
> You're talking about adding support to jax-ws to support the
> processing of a soap message who's body contains multiple parts.
> What's the point of supporting that if wsimport can't consume a WSDL
> that defines the message to have multiple parts in the soap message body?
>
> */Vivek Pandey <Vivek.Pandey_at_Sun.COM>/* wrote:
>
> This is a separate issue. Here in doclit style, you can bind only one
> part to Body. IOW, if your binding binds only one part to the body
> (you
> have to explicitly say which part you want to bind with the body)
> wsimport will work fine.
>
> -vivek.
>
> LeRoy Hall wrote:
> > FYI - Similarly there is a problem with jax-ws consuming a wsdl
> where
> > a message is defined to have multiple parts.
> >
> > For example, the following parts of a wsdl will cause jax-ws to
> fail
> > when generating artifacts:
> >
> >
> >
> >
> >
> > ...
> >
> >
> >
> >
> >
> >
> > ...
> >
> >
> >
> > */Vivek Pandey /* wrote:
> >
> > Hi Paul/Kohsuke,
> >
> > There is an issue regarding jaxws not able to consume SOAP message
> > body
> > having multiple parts. For example message such as :
> >
> >
> >
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
> >
> >
> >
> >
> >
> >
> >
> > This should work atleast for Dispatch and
> > Provider mode given there is no intermediate message
> > conversion other than to SAAJMessage etc.
> >
> > With some changes its kind of working except when there is a
> > DumpTube,
> > which calls StreamMessage.copy(). This is what I am trying to do
> > inside
> > StreamMessage.copy():
> >
> > -----
> > MutableXMLStreamBuffer xsb = new MutableXMLStreamBuffer();
> > StreamReaderBufferCreator c = new
> > StreamReaderBufferCreator(xsb);
> >
> > //write all the soapenv:Body parts
> > while(reader.getEventType() !=
> > XMLStreamConstants.END_DOCUMENT){
> > String name = reader.getLocalName();
> > String nsUri = reader.getNamespaceURI();
> > if(name.equals("Body") &&
> > nsUri.equals(soapVersion.nsUri) || (reader.getEventType() ==
> > XMLStreamConstants.END_DOCUMENT))
> > break;
> >
> > c.create(reader);
> > }
> >
> > reader = xsb.readAsXMLStreamReader();
> > clone = xsb.readAsXMLStreamReader();
> >
> > ------
> >
> > Above I assume that c.create() will append the second body part to
> > the
> > document being created. Meaning when I do nextTag() in a loop till
> > END_DOCUMENT event is reach I will get 2 tages. Latter on when I get
> > StreamReaderBufferProcessor from XMLStreamBuffer, then while
> > reading the
> > elements from it I will get both the body parts.
> >
> > Problem is that when I read latter from
> > StreamReaderBufferProcessor, it
> > gives me only one body part. After reading the first element it
> gives
> > the next event as END_DOCUMENT and somehow does not give me the
> > second
> > one, even though it was written on the XMLStreamBuffer.
> >
> > What do I need to do to get such functionality?
> >
> > -vivek.
> >
> >
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe_at_jax-ws.dev.java.net
> > For additional commands, e-mail: dev-help_at_jax-ws.dev.java.net
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_jax-ws.dev.java.net
> For additional commands, e-mail: dev-help_at_jax-ws.dev.java.net
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>