You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "nadir amra (JIRA)" <ax...@ws.apache.org> on 2007/09/29 06:17:50 UTC

[jira] Issue Comment Edited: (AXISCPP-429) generated stubs use request message name, instead of operation name for setOperation

    [ https://issues.apache.org/jira/browse/AXISCPP-429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12530912 ] 

nadiramra edited comment on AXISCPP-429 at 9/28/07 9:17 PM:
-------------------------------------------------------------

OK, I think from RPC side of things everything is OK, however, from doc/literal side of things I did a little research and from my observations on what Java side of things does when generating Java stubs, it seems to be that:

If input parameters exist, namespace specified for param is used
else if no input parameters exist, then the namespace for the <soap:body > is used if it exists
else null string is used for namespace.

That will be the logic I will be using. 

Thus, for org.apache.axis.wsdl.wsdl2ws.cpp.literal.ClientStubWriter.java (and C equivalent), I have changed the following:

+        // Issue setOperation logic...namespace for the operation is 
+        // obtained from the namespace of the input message...if there
+        // is no input message then the namespace is obtained from 
+        // the SOAP body extensability element for the input element; if
+        // there is no namespace, then we will use a null string.
+        // Techincally speaking, the SOAP body extensability element 
+        // must not contain the namespace attribute.  The SOAP body 
+        // entry element for doc/literal style gets its namespace from the 
+        // target namespace of the XML schema declaring this element. 
+        String namespaceURI;
         if( minfo.getInputMessage() != null)
-        {
-            writer.write( "\t\tm_pCall->setOperation(\"" 
-                    + minfo.getInputMessage().getLocalPart() + "\", \"" 
-                    + minfo.getInputMessage().getNamespaceURI() + "\");\n");
-        }
+            namespaceURI = minfo.getInputMessage().getNamespaceURI();
+        else
+            namespaceURI = minfo.getInputNamespaceURI();
+        
+        if (namespaceURI == null)
+            namespaceURI = "";
 
+         writer.write( "\t\tm_pCall->setOperation(\""
+                + minfo.getMethodname() + "\", \""
+                + namespaceURI + "\");\n");

This also ensures the setOperation is issued even if there are no input parameters.

      was (Author: nadiramra):
    OK, from my observations on what Java side of things does when generating Java stubs, it seems to be that:

If input parameters exist, namespace specified for param is used
else if no input parameters exist, then the namespace for the <soap:body > is used if it exists
else null string is used for namespace.

That will be the logic I will be using. 

Thus, the else-leg code will be changing so that it looks like the following:

        else
        {
             // Use namespace specified in input/output binding if one exists
             String namespaceURI = minfo.getNamespaceURI();
             if (namespaceURI == null)
                  namespaceURI = "";

             writer.write( "\t\tm_pCall->setOperation(\""
                    + minfo.getMethodname() + "\", \""
                    + namespaceURI + "\");\n");
        } 
  
> generated stubs use request message name, instead of operation name for setOperation
> ------------------------------------------------------------------------------------
>
>                 Key: AXISCPP-429
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-429
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: WSDL processing - RPC
>    Affects Versions: 1.5 Alpha
>            Reporter: Adrian Dick
>            Assignee: nadir amra
>             Fix For: current (nightly)
>
>
> The WSDL2Ws tool generates doc/literal stubs where the setOperation method uses the request message name, rather than the operation name.
> Regretably, all of our tests have these values set the same, hence this problem never having been seen before.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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