You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ds...@apache.org on 2006/05/05 23:44:16 UTC

svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Author: dsosnoski
Date: Fri May  5 14:44:15 2006
New Revision: 400185

URL: http://svn.apache.org/viewcvs?rev=400185&view=rev
Log:
Create empty element for void response

Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=400185&r1=400184&r2=400185&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri May  5 14:44:15 2006
@@ -281,6 +281,9 @@
                             <xsl:choose>
                                 <xsl:when test="$style='rpc' or $style='document'">
                                     //Style is Doc. No input parameters
+                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
+                                    env = factory.getDefaultEnvelope();
+                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
                                 </xsl:when>
                                 <xsl:otherwise>
                                     //Unknown style!! No code is generated
@@ -438,6 +441,9 @@
                             <xsl:choose>
                                 <xsl:when test="$style='document' or $style='rpc'">
                                     //Style is Doc. No input parameters
+                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
+                                    env = factory.getDefaultEnvelope();
+                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
                                 </xsl:when>
                                 <xsl:otherwise>
                                     //Unknown style!! No code is generated
@@ -528,6 +534,9 @@
                         <xsl:choose>
                             <xsl:when test="$style='document' or $style='rpc'">
                                 //Style is Doc. No input parameters
+                                org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
+                                env = factory.getDefaultEnvelope();
+                                env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
                             </xsl:when>
                             <xsl:otherwise>
                                 //Unknown style!! No code is generated



[Axis2] Handling of empty requests or responses (Was: Re: svn commit: r400185...)

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
Sanjiva Weerawarana wrote:

>On Sat, 2006-05-06 at 15:25 +1200, Dennis Sosnoski wrote:
>  
>
>>Hi Sanjiva,
>>
>>This change was actually for the client stub, so my comment was somewhat
>>off - the case it's handling is when the request has no data,
>>corresponding to a method call with no parameters. The child element of
>>the SOAP:Body is still needed in order to identify the operation.
>>    
>>
>
>Not necessarily .. it could be done using wsa:Action or other means. It
>again depends on what the WSDL says!
>  
>
True, it can be handled that way. Unfortunately I don't think this 
information (whether there's an element or not) is passed to the code 
generation XSLT currently, as mentioned below. In any case, the prior 
code generation threw an NPE regardless of what the WSDL said, so I 
think this has to be an improvement. :-)

>  
>
>>I did look into the related issue of a void response, and how that's
>>handled by the message receiver. As you said, depending on how that's
>>represented in the WSDL and service definition this could be handled in
>>two ways: As an INOnly operation, in which case there should not be any
>>child element in the SOAP:Body; or as an INOUT operation, in which case
>>the response will normally have a child element in the SOAP:Body (or at
>>least *can* have a child element in the SOAP:Body, if the corresponding
>>message has a part defined). The message receiver is currently not
>>handling that second case correctly - it generates an empty SOAP:Body -
>>but this is a less serious issue since Axis2 and many other frameworks
>>will ignore the response anyway. It'd take a more substantial change to
>>fix this problem, since the code generator doesn't appear to be passing
>>the element information into the XSLTs.
>>    
>>
>
>I'm confused- the message receiver must be a generated message receiver
>to handle this kind of stuff. In that case, it must have the right
>behavior per the WSDL or I'd consider it a bug. 
>  
>
Yes, it's a bug in the current message receiver generation.

>My apologies if I'm being thick.
>  
>
Not at all, this is a confusing area with all the many options to handle 
and I'm glad we can work through the alternatives. It looks to me like 
we're going to need to add more information to the XML passed to the 
code generation XSLTs in order to handle all the possible cases 
properly. I'm looking at extending it anyway for wrapped handling, so 
should be able to handle this at the same time.

Moving this over to axis-dev where more people can be aware of the 
discussion. For those who didn't see the start of the thread, it grew 
out of a commit I'd made for the InterfaceImplementationTemplate.xsl. My 
comment said the commit was to handle empty responses, but it was 
actually to handle empty requests.

  - Dennis

Re: svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
On Sat, 2006-05-06 at 15:25 +1200, Dennis Sosnoski wrote:
> Hi Sanjiva,
> 
> This change was actually for the client stub, so my comment was somewhat
> off - the case it's handling is when the request has no data,
> corresponding to a method call with no parameters. The child element of
> the SOAP:Body is still needed in order to identify the operation.

Not necessarily .. it could be done using wsa:Action or other means. It
again depends on what the WSDL says!

> I did look into the related issue of a void response, and how that's
> handled by the message receiver. As you said, depending on how that's
> represented in the WSDL and service definition this could be handled in
> two ways: As an INOnly operation, in which case there should not be any
> child element in the SOAP:Body; or as an INOUT operation, in which case
> the response will normally have a child element in the SOAP:Body (or at
> least *can* have a child element in the SOAP:Body, if the corresponding
> message has a part defined). The message receiver is currently not
> handling that second case correctly - it generates an empty SOAP:Body -
> but this is a less serious issue since Axis2 and many other frameworks
> will ignore the response anyway. It'd take a more substantial change to
> fix this problem, since the code generator doesn't appear to be passing
> the element information into the XSLTs.

I'm confused- the message receiver must be a generated message receiver
to handle this kind of stuff. In that case, it must have the right
behavior per the WSDL or I'd consider it a bug. 

My apologies if I'm being thick.

Sanjiva.


Re: svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
On Sat, 2006-05-06 at 15:25 +1200, Dennis Sosnoski wrote:
> Hi Sanjiva,
> 
> This change was actually for the client stub, so my comment was somewhat
> off - the case it's handling is when the request has no data,
> corresponding to a method call with no parameters. The child element of
> the SOAP:Body is still needed in order to identify the operation.

Not necessarily .. it could be done using wsa:Action or other means. It
again depends on what the WSDL says!

> I did look into the related issue of a void response, and how that's
> handled by the message receiver. As you said, depending on how that's
> represented in the WSDL and service definition this could be handled in
> two ways: As an INOnly operation, in which case there should not be any
> child element in the SOAP:Body; or as an INOUT operation, in which case
> the response will normally have a child element in the SOAP:Body (or at
> least *can* have a child element in the SOAP:Body, if the corresponding
> message has a part defined). The message receiver is currently not
> handling that second case correctly - it generates an empty SOAP:Body -
> but this is a less serious issue since Axis2 and many other frameworks
> will ignore the response anyway. It'd take a more substantial change to
> fix this problem, since the code generator doesn't appear to be passing
> the element information into the XSLTs.

I'm confused- the message receiver must be a generated message receiver
to handle this kind of stuff. In that case, it must have the right
behavior per the WSDL or I'd consider it a bug. 

My apologies if I'm being thick.

Sanjiva.


Re: svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Posted by Dennis Sosnoski <ds...@apache.org>.
Hi Sanjiva,

This change was actually for the client stub, so my comment was somewhat
off - the case it's handling is when the request has no data,
corresponding to a method call with no parameters. The child element of
the SOAP:Body is still needed in order to identify the operation.

I did look into the related issue of a void response, and how that's
handled by the message receiver. As you said, depending on how that's
represented in the WSDL and service definition this could be handled in
two ways: As an INOnly operation, in which case there should not be any
child element in the SOAP:Body; or as an INOUT operation, in which case
the response will normally have a child element in the SOAP:Body (or at
least *can* have a child element in the SOAP:Body, if the corresponding
message has a part defined). The message receiver is currently not
handling that second case correctly - it generates an empty SOAP:Body -
but this is a less serious issue since Axis2 and many other frameworks
will ignore the response anyway. It'd take a more substantial change to
fix this problem, since the code generator doesn't appear to be passing
the element information into the XSLTs.

  - Dennis

Sanjiva Weerawarana wrote:

>Hi Dennis,
>
>I don't think this is right .. esp. for doc/lit stuff: absence of a
>response may be represented by no payload (i.e., <soap:Body/>) rather
>than with an empty element child. The right thing depends on the schema
>for the response. 
>
>Did I miss something?
>
>Sanjiva.
>
>On Fri, 2006-05-05 at 21:44 +0000, dsosnoski@apache.org wrote:
>  
>
>>Author: dsosnoski
>>Date: Fri May  5 14:44:15 2006
>>New Revision: 400185
>>
>>URL: http://svn.apache.org/viewcvs?rev=400185&view=rev
>>Log:
>>Create empty element for void response
>>
>>Modified:
>>    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
>>
>>Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
>>URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=400185&r1=400184&r2=400185&view=diff
>>==============================================================================
>>--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
>>+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri May  5 14:44:15 2006
>>@@ -281,6 +281,9 @@
>>                             <xsl:choose>
>>                                 <xsl:when test="$style='rpc' or $style='document'">
>>                                     //Style is Doc. No input parameters
>>+                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
>>+                                    env = factory.getDefaultEnvelope();
>>+                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>>                                 </xsl:when>
>>                                 <xsl:otherwise>
>>                                     //Unknown style!! No code is generated
>>@@ -438,6 +441,9 @@
>>                             <xsl:choose>
>>                                 <xsl:when test="$style='document' or $style='rpc'">
>>                                     //Style is Doc. No input parameters
>>+                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
>>+                                    env = factory.getDefaultEnvelope();
>>+                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>>                                 </xsl:when>
>>                                 <xsl:otherwise>
>>                                     //Unknown style!! No code is generated
>>@@ -528,6 +534,9 @@
>>                         <xsl:choose>
>>                             <xsl:when test="$style='document' or $style='rpc'">
>>                                 //Style is Doc. No input parameters
>>+                                org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
>>+                                env = factory.getDefaultEnvelope();
>>+                                env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>>                             </xsl:when>
>>                             <xsl:otherwise>
>>                                 //Unknown style!! No code is generated
>>
>>
>>    
>>
>
>  
>


Re: svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Posted by Dennis Sosnoski <ds...@apache.org>.
Hi Sanjiva,

This change was actually for the client stub, so my comment was somewhat
off - the case it's handling is when the request has no data,
corresponding to a method call with no parameters. The child element of
the SOAP:Body is still needed in order to identify the operation.

I did look into the related issue of a void response, and how that's
handled by the message receiver. As you said, depending on how that's
represented in the WSDL and service definition this could be handled in
two ways: As an INOnly operation, in which case there should not be any
child element in the SOAP:Body; or as an INOUT operation, in which case
the response will normally have a child element in the SOAP:Body (or at
least *can* have a child element in the SOAP:Body, if the corresponding
message has a part defined). The message receiver is currently not
handling that second case correctly - it generates an empty SOAP:Body -
but this is a less serious issue since Axis2 and many other frameworks
will ignore the response anyway. It'd take a more substantial change to
fix this problem, since the code generator doesn't appear to be passing
the element information into the XSLTs.

  - Dennis

Sanjiva Weerawarana wrote:

>Hi Dennis,
>
>I don't think this is right .. esp. for doc/lit stuff: absence of a
>response may be represented by no payload (i.e., <soap:Body/>) rather
>than with an empty element child. The right thing depends on the schema
>for the response. 
>
>Did I miss something?
>
>Sanjiva.
>
>On Fri, 2006-05-05 at 21:44 +0000, dsosnoski@apache.org wrote:
>  
>
>>Author: dsosnoski
>>Date: Fri May  5 14:44:15 2006
>>New Revision: 400185
>>
>>URL: http://svn.apache.org/viewcvs?rev=400185&view=rev
>>Log:
>>Create empty element for void response
>>
>>Modified:
>>    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
>>
>>Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
>>URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=400185&r1=400184&r2=400185&view=diff
>>==============================================================================
>>--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
>>+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri May  5 14:44:15 2006
>>@@ -281,6 +281,9 @@
>>                             <xsl:choose>
>>                                 <xsl:when test="$style='rpc' or $style='document'">
>>                                     //Style is Doc. No input parameters
>>+                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
>>+                                    env = factory.getDefaultEnvelope();
>>+                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>>                                 </xsl:when>
>>                                 <xsl:otherwise>
>>                                     //Unknown style!! No code is generated
>>@@ -438,6 +441,9 @@
>>                             <xsl:choose>
>>                                 <xsl:when test="$style='document' or $style='rpc'">
>>                                     //Style is Doc. No input parameters
>>+                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
>>+                                    env = factory.getDefaultEnvelope();
>>+                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>>                                 </xsl:when>
>>                                 <xsl:otherwise>
>>                                     //Unknown style!! No code is generated
>>@@ -528,6 +534,9 @@
>>                         <xsl:choose>
>>                             <xsl:when test="$style='document' or $style='rpc'">
>>                                 //Style is Doc. No input parameters
>>+                                org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
>>+                                env = factory.getDefaultEnvelope();
>>+                                env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>>                             </xsl:when>
>>                             <xsl:otherwise>
>>                                 //Unknown style!! No code is generated
>>
>>
>>    
>>
>
>  
>


Re: svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
Hi Dennis,

I don't think this is right .. esp. for doc/lit stuff: absence of a
response may be represented by no payload (i.e., <soap:Body/>) rather
than with an empty element child. The right thing depends on the schema
for the response. 

Did I miss something?

Sanjiva.

On Fri, 2006-05-05 at 21:44 +0000, dsosnoski@apache.org wrote:
> Author: dsosnoski
> Date: Fri May  5 14:44:15 2006
> New Revision: 400185
> 
> URL: http://svn.apache.org/viewcvs?rev=400185&view=rev
> Log:
> Create empty element for void response
> 
> Modified:
>     webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
> 
> Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=400185&r1=400184&r2=400185&view=diff
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
> +++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri May  5 14:44:15 2006
> @@ -281,6 +281,9 @@
>                              <xsl:choose>
>                                  <xsl:when test="$style='rpc' or $style='document'">
>                                      //Style is Doc. No input parameters
> +                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
> +                                    env = factory.getDefaultEnvelope();
> +                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>                                  </xsl:when>
>                                  <xsl:otherwise>
>                                      //Unknown style!! No code is generated
> @@ -438,6 +441,9 @@
>                              <xsl:choose>
>                                  <xsl:when test="$style='document' or $style='rpc'">
>                                      //Style is Doc. No input parameters
> +                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
> +                                    env = factory.getDefaultEnvelope();
> +                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>                                  </xsl:when>
>                                  <xsl:otherwise>
>                                      //Unknown style!! No code is generated
> @@ -528,6 +534,9 @@
>                          <xsl:choose>
>                              <xsl:when test="$style='document' or $style='rpc'">
>                                  //Style is Doc. No input parameters
> +                                org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
> +                                env = factory.getDefaultEnvelope();
> +                                env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>                              </xsl:when>
>                              <xsl:otherwise>
>                                  //Unknown style!! No code is generated
> 
> 


Re: svn commit: r400185 - /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
Hi Dennis,

I don't think this is right .. esp. for doc/lit stuff: absence of a
response may be represented by no payload (i.e., <soap:Body/>) rather
than with an empty element child. The right thing depends on the schema
for the response. 

Did I miss something?

Sanjiva.

On Fri, 2006-05-05 at 21:44 +0000, dsosnoski@apache.org wrote:
> Author: dsosnoski
> Date: Fri May  5 14:44:15 2006
> New Revision: 400185
> 
> URL: http://svn.apache.org/viewcvs?rev=400185&view=rev
> Log:
> Create empty element for void response
> 
> Modified:
>     webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
> 
> Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
> URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=400185&r1=400184&r2=400185&view=diff
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
> +++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri May  5 14:44:15 2006
> @@ -281,6 +281,9 @@
>                              <xsl:choose>
>                                  <xsl:when test="$style='rpc' or $style='document'">
>                                      //Style is Doc. No input parameters
> +                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
> +                                    env = factory.getDefaultEnvelope();
> +                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>                                  </xsl:when>
>                                  <xsl:otherwise>
>                                      //Unknown style!! No code is generated
> @@ -438,6 +441,9 @@
>                              <xsl:choose>
>                                  <xsl:when test="$style='document' or $style='rpc'">
>                                      //Style is Doc. No input parameters
> +                                    org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
> +                                    env = factory.getDefaultEnvelope();
> +                                    env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>                                  </xsl:when>
>                                  <xsl:otherwise>
>                                      //Unknown style!! No code is generated
> @@ -528,6 +534,9 @@
>                          <xsl:choose>
>                              <xsl:when test="$style='document' or $style='rpc'">
>                                  //Style is Doc. No input parameters
> +                                org.apache.axiom.soap.SOAPFactory factory = getFactory(_operationClient.getOptions().getSoapVersionURI());
> +                                env = factory.getDefaultEnvelope();
> +                                env.getBody().addChild(factory.createOMElement("<xsl:value-of select="$method-name"/>", "<xsl:value-of select="$method-ns"/>", ""));
>                              </xsl:when>
>                              <xsl:otherwise>
>                                  //Unknown style!! No code is generated
> 
>