[ 
https://issues.apache.org/jira/browse/AXIS2-2246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12486829
 ] 

Tim Buss commented on AXIS2-2246:
---------------------------------

I have finally narrowed down the mysterious issue with the more complex schema 
and rpc-literal.  It is a fairly bizarre bug.

If you have a service the is rpc-literal for which you declare a message (eg: 
"NewOperation") which has a part with the same name (ie  "NewOperation")  eg:


        <wsdl:message name="NewOperation">
                <wsdl:part name="NewOperation" type="xsd:string" />
        </wsdl:message>


and then you include a schema file in the wsdl:types section of the WSDL

        <xsd:include schemaLocation="Axis2RPCLiteralTest.xsd"/>



that declares a top level element that has the same name as the operation and 
part (ie "NewOperation" )

        <xsd:element name="NewOperation" type="xsd:string"/>

Then the generated client code will send Document Literal style messages 
instead of RPC Literal style messages and the generated server will accept them 
and respond, strangely, with an RPC-Literal style message.

Removing the element declaration avoids the issue and the correct RPC-literal 
messages are exchanged.

I am using the Axis 1.1.1 SNAPSHOT from 3/21/07 withthe axiom snapshot from 
3/23/07
I am generating the service with the following command:

%AXIS2_HOME%/bin/wsdl2java.bat -uri wsdl/Axis2RPCLiteralTest.wsdl -p 
org.example.www.axis2rpcliteraltest  -s -ss -sd -g -u -t


Now I can reproduce it I will get the latest snapshots and see if it still 
shows up.




> Rpc-Literal Client and Server adb codegen create messages that are non WS-I 
> complient 
> --------------------------------------------------------------------------------------
>
>                 Key: AXIS2-2246
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2246
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.1.1
>         Environment: Axis 1.5, Tomcat 5.5, Axis2 1.1.1, Axis2 Eclipse codegen 
> plugin 1.1.1, Eclipse 3.2, WTP 1.5.1, Windows 2003 server
>            Reporter: Tim Buss
>            Priority: Critical
>         Attachments: Axis2RPCLiteralTest.wsdl
>
>
> There appears to be two problems.  The most obvious is that the RPC-literal 
> message sent by the generated client and accepted by the generated service is 
> incorrect .  The following message body  is sent for the various test cases I 
> have tried - string, complex type, nested complex type. 
> <soapenv:Body> 
>     <ns:OperationName> 
>         <ns:PartName> 
> .............content..... 
>         </ns:PartName> 
>     </ns:OperationName> 
> </soapenv:Body> 
> but it should be: 
> <soapenv:Body> 
>     <ns:OperationName> 
>         <PartName> 
> .............content..... 
>         </PartName> 
>     </ns:OperationName> 
> </soapenv:Body> 
> PartName should be a non qualified name.  Axis 1.3 did it this way, and other 
> sources support this as being the correct form for rpc-literal.  In 
> particualr WS-I Basic 1.0 states: 
> "4.7.20 Part Accessors 
> For rpc-literal envelopes, WSDL 1.1 is not clear what namespace, if any, the 
> accessor elements for parameters and return value are a part of. Different 
> implementations make different choices, leading to interoperability problems. 
> R2735 An ENVELOPE described with an rpc-literal binding MUST place the part 
> accessor elements for parameters and return value in no namespace. 
> R2755 The part accessor elements in a MESSAGE described with an rpc-literal 
> binding MUST have a local name of the same value as the name attribute of the 
> corresponding wsdl:part element. 
> Settling on one alternative is crucial to achieving interoperability. The 
> Profile places the part accessor elements in no namespace as doing so is 
> simple, covers all cases, and does not lead to logical inconsistency. " 
> http://www.ws-i.org/Profiles/BasicProfile-1.2.html 
> The second problem that I have yet to narrow down is that with a much more 
> complex type, the generated client sends a message with a body like this 
> where the "part" element is not present: 
> <soapenv:Body> 
>     <ns:OperationName> 
>  .............content..... 
>      </ns:OperationName> 
> </soapenv:Body> 
> One other difference that may be a factor in this case is that my complex 
> service is one way. 

-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to