/*********** source code ********************/
package ws.example;

public
class TemperatureConverter {



public TempObject[] calString(String a) {

TempObject[] objs =
new TempObject[2];

objs[0] =
new TempObject();

objs[0].setA(1);

objs[0].setValue(
new Integer(10));


objs[1] =
new TempObject();

objs[1].setA(2);

objs[1].setValue(
new Integer(20));


return objs;

}

}


package
ws.example;


public
class TempObject {

private int a;

private Object value;


public TempObject() {

a = 1;


}


public int getA() {

return a;

}


public void setA(int v) {

this.a = v;

}


public Object getValue() {

return value;

}


public void setValue(Object v) {

this.value = v;

}

}
/******************************************/

/**************wsdl file*******************/
<?
xml version="1.0" encoding="UTF-8"?>

<
wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="
http://example.ws/xsd"; xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:ns0="
http://example.ws"; 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://example.ws";>


<wsdl:documentation>Temperature</wsdl:documentation>

<wsdl:types>

<xs:schema xmlns:ns="http://example.ws"; attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://example.ws";>

<xs:element name="calString">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" name="a" nillable="true" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="calStringResponse">

<xs:complexType>

<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="return"
nillable="true" type="ns1:TempObject"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

<xs:schema xmlns:ax24="http://example.ws/xsd";
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://example.ws/xsd";>

<xs:complexType name="TempObject">

<xs:sequence>

<xs:element minOccurs="0" name="a" type="xs:int"/>

<xs:element minOccurs="0" name="value" nillable="true" type="xs:anyType"/>

</xs:sequence>

</xs:complexType>

</xs:schema>

</wsdl:types>

<wsdl:message name="calStringRequest">

<wsdl:part name="parameters" element="ns0:calString"/>

</wsdl:message>

<wsdl:message name="calStringResponse">

<wsdl:part name="parameters" element="ns0:calStringResponse"/>

</wsdl:message>

<wsdl:portType name="TemperaturePortType">

<wsdl:operation name="calString">

<wsdl:input message="ns0:calStringRequest" wsaw:Action="urn:calString"/>

<wsdl:output message="ns0:calStringResponse"
wsaw:Action="urn:calStringResponse"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="TemperatureSOAP11Binding"
type="ns0:TemperaturePortType">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http";
style="document"/>

<wsdl:operation name="calString">

<soap:operation soapAction="urn:calString" style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="Temperature">

<wsdl:port name="TemperatureSOAP11port_http"
binding="ns0:TemperatureSOAP11Binding">

<soap:address location="http://maximus:8080/axis2/services/Temperature"/>

</wsdl:port>


</wsdl:service>

</wsdl:definitions>
/******************************************/

/*************outgoing soap****************/
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:q0="http://example.ws";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
<soapenv:Body>
<q0:calString />
</soapenv:Body>
</soapenv:Envelope>
/******************************************/

/*************incoming soap****************/
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Body>
<ns:calStringResponse xmlns:ns="http://example.ws"; xmlns:ax24="
http://example.ws/xsd";>
<ns:return type="ws.example.TempObject">
<ax24:a>1</ax24:a>
<ax24:value type="java.lang.Integer" />
</ns:return>
<ns:return type="ws.example.TempObject">
<ax24:a>2</ax24:a>
<ax24:value type="java.lang.Integer" />
</ns:return>
</ns:calStringResponse>
</soapenv:Body>
</soapenv:Envelope>
/******************************************/

You can see the Integer values of TempObject are not returned in the
incoming soap. I also tried other primitive objects, I got the same problem.
Can anyone please tell me what's wrong? Thanks.

Tony Liu

Reply via email to