Attachment using org.apache.axis2.rpc.receivers.RPCMessageReceiver is broken
----------------------------------------------------------------------------

                 Key: AXIS2-2741
                 URL: https://issues.apache.org/jira/browse/AXIS2-2741
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: transports
    Affects Versions: 1.2
         Environment: Axis2-1.2 release/ Windows&Linux /Jboss 4.05GA
            Reporter: Aliho


org.apache.axis2.rpc.receivers.RPCMessageReceiver will throw a 
NumberFormatException from trying to create a Byte object from a long binary 
string.

==========TestService.java=========

package test;

public class TestService{
  
  public String Test(String fileName, String contentType, byte[] binary){
    return "boom!";
  }
}

=========service.xml=============
        <service name="TestService"
                 scope="application">
                 <description>This is used for testing</description>
                        <messageReceivers>
                            <messageReceiver 
mep="http://www.w3.org/2004/08/wsdl/in-only";
                                             
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
                            <messageReceiver 
mep="http://www.w3.org/2004/08/wsdl/in-out";
                                             
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
                        </messageReceivers>
                                        <parameter 
name="useOriginalwsdl">false</parameter> 
                 <parameter name="ServiceClass">test.TestService</parameter>
        </service>      


The above pojo will generate the following WSDL file.

========Generated wsdl===========
<wsdl:definitions xmlns:axis2="http://test"; 
xmlns:ns1="http://org.apache.axis2/xsd"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:ns0="http://test/xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
targetNamespace="http://test";><wsdl:documentation>TestService</wsdl:documentation><wsdl:types><xs:schema
 xmlns:ns="http://test/xsd"; attributeFormDefault="qualified" 
elementFormDefault="qualified" targetNamespace="http://test/xsd";>
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="fileName" nillable="true" type="xs:string" />
<xs:element name="contentType" nillable="true" type="xs:string" />
<xs:element name="binary" nillable="true" type="xs:base64Binary" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TestResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>

</xs:element>
</xs:schema></wsdl:types><wsdl:message name="TestMessage"><wsdl:part 
name="part1" element="ns0:Test" /></wsdl:message><wsdl:message 
name="TestResponse"><wsdl:part name="part1" element="ns0:TestResponse" 
/></wsdl:message><wsdl:portType name="TestServicePortType"><wsdl:operation 
name="Test"><wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:TestMessage" wsaw:Action="urn:Test" /><wsdl:output 
message="axis2:TestResponse" /></wsdl:operation></wsdl:portType><wsdl:binding 
name="TestServiceSOAP11Binding" type="axis2:TestServicePortType"><soap:binding 
transport="http://schemas.xmlsoap.org/soap/http"; style="document" 
/><wsdl:operation name="Test"><soap:operation soapAction="urn:Test" 
style="document" /><wsdl:input><soap:body use="literal" 
/></wsdl:input><wsdl:output><soap:body use="literal" 
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding 
name="TestServiceSOAP12Binding" 
type="axis2:TestServicePortType"><soap12:binding 
transport="http://schemas.xmlsoap.org/soap/http"; style="document" 
/><wsdl:operation name="Test"><soap12:operation soapAction="urn:Test" 
style="document" /><wsdl:input><soap12:body use="literal" 
/></wsdl:input><wsdl:output><soap12:body use="literal" 
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding 
name="TestServiceHttpBinding" type="axis2:TestServicePortType"><http:binding 
verb="POST" /><wsdl:operation name="Test"><http:operation location="Test" 
/><wsdl:input><mime:content type="text/xml" 
/></wsdl:input><wsdl:output><mime:content type="text/xml" 
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service 
name="TestService"><wsdl:port name="TestServiceSOAP11port_http" 
binding="axis2:TestServiceSOAP11Binding"><soap:address 
location="http://10.67.90.102:8888/cms-war-0.0.1/services/TestService"; 
/></wsdl:port><wsdl:port name="TestServiceSOAP11port_tcp1" 
binding="axis2:TestServiceSOAP11Binding"><soap:address 
location="tcp://10.67.90.102:6061/axis2/services/TestService" 
/></wsdl:port><wsdl:port name="TestServiceSOAP12port_http" 
binding="axis2:TestServiceSOAP12Binding"><soap12:address 
location="http://10.67.90.102:8888/cms-war-0.0.1/services/TestService"; 
/></wsdl:port><wsdl:port name="TestServiceSOAP12port_tcp1" 
binding="axis2:TestServiceSOAP12Binding"><soap12:address 
location="tcp://10.67.90.102:6061/axis2/services/TestService" 
/></wsdl:port><wsdl:port name="TestServiceHttpport" 
binding="axis2:TestServiceHttpBinding"><http:address 
location="http://10.67.90.102:8888/cms-war-0.0.1/services/TestService"; 
/></wsdl:port></wsdl:service></wsdl:definitions>

********************************************************************************************
Use the above generated wsdl to create a client jar using wsdl2java, and try to 
send a message to TestService. The service will throw a NumberFormatException 
if the content element is anything other than a small number (a number that is 
less than a byte).

This is obviously wrong because content should be a long binary string.

-- 
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