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 - or so I believe.  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.

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 differnce that may be a factor is that my complex service is one
way.

I have attached the WSDL I'm using for the test cases in case someone can
point out my obvious error.

Thanks,
Tim




tgb wrote:
> 
> Thanks, that makes sense. I understand the workaround for getting the
> service to show the correct WSDL.
> 
> However, there seems to be a problem with the client codegen for
> rpc/literal.  So far I have only managed to make it work correctly with
> parameter that has a simple type (I tried xs:string)  When I change the
> type of the parameter to complex type, the client no longer adds the
> "part" element to the SOAP message it sends.   Instead the "operation"
> element contains the complex data directly as if the SOAP message was a
> document literal style message.
> 
> I am using the axis2 eclipse codegen plugin 1.1.1 with the default option
> (ie adb generation).  I'll attach the WSDLs once I think I have a
> reproducible case
> 
> Tim
> 
> 
> Amila Suriarachchi wrote:
>> 
>> hi,
>> In codegeneration with wsdl, we convert the rpc style wsdl in to document
>> style (similar in messages) by generating the elements for rpc type
>> messages. And finally save the wsdl file to resource directory. When
>> saving
>> the wsdl file back it serializes the generated axis service object
>> structure
>> instead of saving the origianl wsdl as it is. That is the reason why you
>> get
>> a wsdl which is converted to document style. So can you please replace
>> your
>> saved wsdl in resource folder with the original wsdl and see.
>> On the other hand axis2 generates a wsdl only if the Message receiver is
>> one
>> of RPCMessageReceivers. but when generating the code from the wsdl it
>> creates a custom message receiver for the given wsdl file.
>> 
>> Amila.
>> -- 
>> Amila Suriarachchi,
>> WSO2 Inc.
>> 
>> 
> 
> 
http://www.nabble.com/file/6694/Axis2RPCLiteralTest.wsdl
Axis2RPCLiteralTest.wsdl 
-- 
View this message in context: 
http://www.nabble.com/RPC-WSDL---Codegen--tf2593238.html#a9098426
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to