base64binary serialization
--------------------------
Key: AXIS2-3006
URL: https://issues.apache.org/jira/browse/AXIS2-3006
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: databinding
Affects Versions: 1.3
Environment: tested on Axis2 1.2 & 1.3 RC2
os: *nix , windows,
tomcat : 5.5.23
java 1.6
Reporter: Georgi Yonchev
using POJO's ..
this happens when the response is some object with byte[] parameter inside it.
here is the server class:
public class Test {
public Res test(){
Res res = new Res();
StringBuffer sb = new StringBuffer();
for(int i = 0 ; i < 5000; i++){
sb.append(i);
}
res.setData(sb.toString().getBytes());
return res;
}
public byte[] test2(){
StringBuffer sb = new StringBuffer();
for(int i = 0 ; i < 5000; i++){
sb.append(i);
}
return sb.toString().getBytes();
}
}
Res class:
public class Res {
private byte[] data;
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
}
and the wsdl:
<wsdl:definitions xmlns:ns="http://"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="http:///xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
targetNamespace="http://"><wsdl:types><xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ax26="http://ws.apache.org/axis2/xsd" attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://ws.apache.org/axis2/xsd">
<xs:element name="Res" type="ax26:Res" />
<xs:complexType name="Res">
<xs:sequence>
<xs:element name="data" nillable="true" type="xs:base64Binary" />
</xs:sequence>
</xs:complexType>
</xs:schema><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns0="http://ws.apache.org/axis2/xsd" attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http:///xsd">
<xs:element name="testResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:Res" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="test2Response">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:base64Binary" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema></wsdl:types><wsdl:message name="testMessage" /><wsdl:message
name="testResponseMessage"><wsdl:part name="part1" element="xsd:testResponse"
/></wsdl:message><wsdl:message name="test2Message" /><wsdl:message
name="test2ResponseMessage"><wsdl:part name="part1" element="xsd:test2Response"
/></wsdl:message><wsdl:portType name="TestPortType"><wsdl:operation
name="test"><wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
wsaw:Action="urn:test" message="ns:testMessage" /><wsdl:output
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="ns:testResponseMessage" wsaw:Action="urn:test"
/></wsdl:operation><wsdl:operation name="test2"><wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsaw:Action="urn:test2"
message="ns:test2Message" /><wsdl:output
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
message="ns:test2ResponseMessage" wsaw:Action="urn:test2"
/></wsdl:operation></wsdl:portType><wsdl:binding name="TestSOAP11Binding"
type="ns:TestPortType"><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:operation name="test2"><soap:operation
soapAction="urn:test2" 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="TestSOAP12Binding" type="ns:TestPortType"><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:operation name="test2"><soap12:operation
soapAction="urn:test2" style="document" /><wsdl:input><soap12:body
use="literal" /></wsdl:input><wsdl:output><soap12:body use="literal"
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service
name="Test"><wsdl:port name="TestSOAP11port"
binding="ns:TestSOAP11Binding"><soap:address
location="http://localhost:8080/axis2/services/Test" /></wsdl:port><wsdl:port
name="TestSOAP12port" binding="ns:TestSOAP12Binding"><soap12:address
location="http://localhost:8080/axis2/services/Test"
/></wsdl:port></wsdl:service></wsdl:definitions>
this wsdl & service.xml is generated automatically by the eclipse plug-in
here is the client:
public class Test_client {
public static void main(String args[]){
try{
Res res = new Res();
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(
"http://10.7.10.50:8080/testService2/services/Test");
options.setTo(targetEPR);
QName test =
new QName("http:///xsd", "test");
Object[] argss = new Object[] { };
Class[] returnTypes = new Class[] { Res.class };
Object[] response = serviceClient.invokeBlocking(test, argss,
returnTypes);
res = (Res)response[0];
if (res == null) {
System.out.println("serivce didn't initialize!");
}
System.out.println(res.getData());
}catch(Exception e){
e.printStackTrace();
}
}
}
so, test2() always works, small/larger byte[] size
in test() if you test with "some string".getBytes() will work
but larger ... no
here is the soap payload :
ns:byteData>104</ns:byteData><ns:byteData>111</ns:byteData><ns:byteData>109</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>44</ns:byteData><ns:byteData>32</ns:byteData><ns:byteData>86</ns:byteData><ns:byteData>101</ns:byteData><ns:byteData>114</ns:byteData><ns:byteData>100</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>110</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>44</ns:byteData><ns:byteData>32</ns:byteData><ns:byteData>65</ns:byteData><ns:byteData>114</ns:byteData><ns:byteData>105</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>108</ns:byteData><ns:byteData>44</ns:byteData><ns:byteData>32</ns:byteData><ns:byteData>72</ns:byteData><ns:byteData>101</ns:byteData><ns:byteData>108</ns:byteData><ns:byteData>118</ns:byteData><ns:byteData>101</ns:byteData><ns:byteData>116</ns:byteData><ns:byteData>105</ns:byteData><ns:byteData>99</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>59</ns:byteData><ns:byteData>13</ns:byteData><ns:b
yteData>10</ns:byteData><ns:byteData>9</ns:byteData><ns:byteData>102</ns:byteData><ns:byteData>111</ns:byteData><ns:byteData>110</ns:byteData><ns:byteData>116</ns:byteData><ns:byteData>45</ns:byteData><ns:byteData>115</ns:byteData><ns:byteData>105</ns:byteData><ns:byteData>122</ns:byteData><ns:byteData>101</ns:byteData><ns:byteData>58</ns:byteData><ns:byteData>32</ns:byteData><ns:byteData>49</ns:byteData><ns:byteData>48</ns:byteData
><ns:byteData>112</ns:byteData><ns:byteData>116</ns:byteData><ns:byteData>59</ns:byteData><ns:byteData>13</ns:byteData><ns:byteData>10</ns:byteData><ns:byteData>9</ns:byteData><ns:byteData>102</ns:byteData><ns:byteData>111</ns:byteData><ns:byteData>110</ns:byteData><ns:byteData>116</ns:byteData><ns:byteData>45</ns:byteData><ns:byteData>119</ns:byteData><ns:byteData>101</ns:byteData><ns:byteData>105</ns:byteData><ns:byteData>103</ns:byteData><ns:byteData>104</ns:byteData><ns:byteData>116</ns:byteData><ns:byteData>58</ns:byteData><ns:byteData>32</ns:byteData><ns:byteData>110</ns:byteData><ns:byteData>111</ns:byteData><ns:byteData>114</ns:byteData><ns:byteData>109</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>108</ns:byteData><ns:byteData>59</ns:byteData><ns:byteData>13</ns:byteData><ns:byteData>10</ns:byteData><ns:byteData>125</ns:byteData><ns:byteData>13</ns:byteData><ns:byteData>10</ns:byteData><ns:byteData>46</ns:byteData><ns:byteData>99</ns:byteData><ns:byteData>111</ns:byteData><ns:byteData>110</n
s:byteData><ns:byteData
2000
>116</ns:byteData><ns:byteData>101</ns:byteData><ns:byteData>110</ns:byteData><ns:byteData>116</ns:byteData><ns:byteData>49</ns:byteData><ns:byteData>123</ns:byteData><ns:byteData>13</ns:byteData><ns:byteData>10</ns:byteData><ns:byteData>9</ns:byteData><ns:byteData>109</ns:byteData><ns:byteData>97</ns:byteData><ns:byteData>114</ns:byteData><ns:byteData>103</ns:byteData><ns:byteData>105</ns:byteData><ns
:byteData>110</ns:byteData><ns:byteData>58</ns:byteData>
is not encoded in base64 !?
Best Regards
George
--
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]