axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anne Thomas Manes" <atma...@gmail.com>
Subject Re: [Fwd: Re: Java2WSDL output for no parameters or void return type?]
Date Thu, 13 Sep 2007 08:55:40 GMT
Deepal,

Per the wrapped convention, if you have the following interface:

  public String foo();

java2wsdl should generate an input element called "foo":

<w:message name="fooRequest">
  <w:part name="parameters" element="t:foo"/>
</w:message>

And "foo" must be defined as:

<s:element name="foo">
  </s:complexType>
</s:element>

See the JAX-WS spec for the specific requirements of the wrapped
convention, or my blog for a quick overview:

http://atmanes.blogspot.com/2005/03/wrapped-documentliteral-convention.html

Anne



On 9/13/07, Deepal Jayasinghe <deepal@opensource.lk> wrote:
>
>
> Simon Laws wrote:
> > Hi Deepal
> >
> > Some more comments/questions below.
> >
> > Thanks
> >
> > Simon
> >
> > On 9/13/07, *Deepal jayasinghe* <deepalk@gmail.com
> > <mailto:deepalk@gmail.com>> wrote:
> >
> >
> >     > I'm not quite sure whether this in answering the question about
> >     >   public String foo();
> >     This does not take any method parameters , so user can send SOAP
> >     message
> >     with empty body .
> >
> >
> > But in this case Axis at the server has to pull the operation name
> > from the SOAPAction header.
> yes . And Axis2 generate SOAP action for that , so it can find the
> operation from the generated SOAP action (if user sends that)
> >
> >     So when generating the Schema we do not need to
> >     generate Schema element for the input.
> >
> >
> > So in this case axis is happy that the operation name arrives at the
> > server in the SOAPAction header rather than in the first child element
> > of the <body>?
> It won't try to look for the body first child , so there wont be big
> difference whether you send that or not. But sometime if you send the
> body first child without sending SOAP action, that Axis2 will use its
> local name to dispatch the operation.
> >
> > To put it another way. If you have parameters on you operationjava2WSL
> > generates wrapped style WSDL. However it doesn't generate wrapped
> > style WSDL if you don't have parameters on your operation (I'm using
> > the definition of wrapped WSDL from JAX-WS in this case).
> Hmm , well need WSDL advice here , but as I know the WSDL we are
> generating is correct according to the WSDL validators I have used.
> >
> > Sounds strange to me but I'm just trying to get confirmation that this
> > behaviour is by design. There may be a good reason that I'm just not
> > thinking of.
> >
> >     But we are generating message
> >     element for both input and output. So we are generating in-out mep for
> >     the above operation.
> >     >
> >     > or the other question about
> >     >   public void foo(String param);
> >     In this case we have method which take method parameter , so in this
> >     case we generate two schema elements one for input and one for output.
> >     And we generate two message elements as well. So in effect we generate
> >     in-out mep.
> >
> >
> > When I runjava2WSDL on an interface with the method signature
> >
> > public void foo(String param);
> >
> > I see
> >
> > a single message
> > a single input part in this message
> > a single XSD element
> That is correct , since you have in only operation.
> >
> > (see the WSDL I posted earlier in this thread)
> >
> > So it seems axis is generating an in only mep. How do I tell it to
> > produce what you are saying here, i.e. an in-out mep
> >
> >     >
> >     > I think it's answering the former.  If I have understood this
> >     correctly,
> >     > then I'm not clear about what is the intention of Axis2 for the
> >     latter.
> >     > This case does seem to generate an in-only MEP at the moment.
> >     If the method is in only you need to have method with void as it
> >     return
> >     type.
> >
> >     public void update(String id){
> >     }
> >
> >
> > Are you saying here that any message with a void return type is
> > assumed to be in-only? Or am I reading too much into this. To put it
> > another way how do I tell java2WSDL to choose between the generation
> > of in-only or in-out meps in this case.
> There is no way , it pick the MEP looking at the java method , if it is
> void then it assume that as in-only , if the method is void and has a
> exception then it will generate robust-in else it will generate in-out.
>
> Thanks
> Deepal
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message