You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by szymono <sz...@gmail.com> on 2006/11/09 20:26:25 UTC
Problem with array in custom type in .net client
Hi,
first of all - sorry for my english...
Ok, I have java axis webservice with some methods. One of them is:
public GetFreeNumbersOutDTO getFreeNumbers(String iterationGuid, int
category,
int quantity) { ...
which return GetFreeNumbersOutDTO.
Structure of this object:
class GetFreeNumberOutDTO {
Status status;
Msisdn[] msisdn;
...
}
class Status {
int code;
String text;
...
}
class Msisdn {
String msisdnNo;
...
}
I wrote client application in java and webservice returns property values.
But I allso use .net webservicestudio to testing webservice and there is
some problem with my service:
above method returns the following object on response:
GetFreeNumbersOutDTO result {
Msisdn[] results;
Status status {
code: 1;
text: OK;
}
}
but should be:
GetFreeNumbersOutDTO result {
Msisdn[3] results {
Msisdn {
msisdnNo: 800002000;
},
Msisdn {
msisdnNo: 800002001
},
Msisdn {
msisdnNo: 800002002
}
}
Status status {
code: 1;
text: OK;
}
}
Why? here is some xml from request and response:
Request:
<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema">;
<soap:Body>
<getFreeNumbers xmlns="http://blstream.com/soa/activation/">;
<iterationGuid>iter1</iterationGuid>
<category>1</category>
<quantity>3</quantity>
</getFreeNumbers>
</soap:Body>
</soap:Envelope>
Response:
<?xml version="1.0" encoding="utf-16"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
<soapenv:Body>
<getFreeNumbersResponse xmlns="http://blstream.com/soa/activation/">;
<getFreeNumbersReturn>
<result>
<result>
<msisdnNo>800002000</msisdnNo>
</result>
<result>
<msisdnNo>800002001</msisdnNo>
</result>
<result>
<msisdnNo>800002002</msisdnNo>
</result>
</result>
<status>
<code>1</code>
<text>OK</text>
</status>
</getFreeNumbersReturn>
</getFreeNumbersResponse>
</soapenv:Body>
</soapenv:Envelope>
As you can see array should not be empty - .net has some problem with
deserializing object but why? Maybe i have wrong configuration:
WSDD:
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">;
<globalConfiguration>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="disablePrettyXML" value="false"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization"
value="true"/>
<parameter name="enableList" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
</globalConfiguration>
<handler name="LocalResponder"
type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="URLMapper"
type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="Authenticate"
type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<service name="ActivationService" provider="java:RPC" style="wrapped"
use="literal">
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="session"/>
<parameter name="className"
value="ecrm.soa.webservice.activation.ActivationImpl"/>
<namespace>http://blstream.com/soa/activation/</namespace>;
<beanMapping qname="ns:GetFreeNumbersOutDTO"
xmlns:ns="http://blstream.com/soa/activation/";
languageSpecificType="java:ecrm.soa.webservice.activation.dto.GetFreeNumbersOutDTO"/>
<beanMapping qname="ns:Status"
xmlns:ns="http://blstream.com/soa/activation/";
languageSpecificType="java:ecrm.core.common.dto.Status"/>
<beanMapping qname="ns:MsisdnWithSim"
xmlns:ns="http://blstream.com/soa/activation/";
languageSpecificType="java:ecrm.soa.webservice.activation.dto.MsisdnWithSim"/>
<beanMapping qname="ns:Msisdn"
xmlns:ns="http://blstream.com/soa/activation/";
languageSpecificType="java:ecrm.soa.webservice.activation.dto.Msisdn"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler
type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
<parameter name="qs:list"
value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:wsdl"
value="org.apache.axis.transport.http.QSWSDLHandler"/>
<parameter name="qs.list"
value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs.method"
value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:method"
value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs.wsdl"
value="org.apache.axis.transport.http.QSWSDLHandler"/>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>
WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://blstream.com/soa/activation/";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://blstream.com/soa/activation/";
xmlns:intf="http://blstream.com/soa/activation/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema">;
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://blstream.com/soa/activation/";
xmlns="http://www.w3.org/2001/XMLSchema">;
<element name="getFreeNumbers">
<complexType>
<sequence>
<element name="iterationGuid" type="xsd:string"/>
<element name="category" type="xsd:int"/>
<element name="quantity" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="getFreeNumbersResponse">
<complexType>
<sequence>
<element name="getFreeNumbersReturn" type="impl:GetFreeNumbersOutDTO"/>
</sequence>
</complexType>
</element>
<complexType name="Msisdn">
<sequence>
<element name="msisdnNo" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayOfMsisdn">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item"
type="impl:Msisdn"/>
</sequence>
</complexType>
<complexType name="Status">
<sequence>
<element name="code" type="xsd:int"/>
<element name="text" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="GetFreeNumbersOutDTO">
<sequence>
<element name="result" nillable="true" type="impl:ArrayOfMsisdn"/>
<element name="status" nillable="true" type="impl:Status"/>
</sequence>
</complexType>
<element name="chooseNumbers">
<complexType>
<sequence>
<element name="iterationGuid" type="xsd:string"/>
<element maxOccurs="unbounded" name="numbers" type="impl:Msisdn"/>
</sequence>
</complexType>
</element>
<element name="chooseNumbersResponse">
<complexType>
<sequence>
<element name="chooseNumbersReturn" type="impl:Status"/>
</sequence>
</complexType>
</element>
<element name="pairNumbers">
<complexType>
<sequence>
<element name="iterationGuid" type="xsd:string"/>
<element maxOccurs="unbounded" name="numbersAndSims"
type="impl:MsisdnWithSim"/>
</sequence>
</complexType>
</element>
<complexType name="MsisdnWithSim">
<complexContent>
<extension base="impl:Msisdn">
<sequence>
<element name="imei" nillable="true" type="xsd:string"/>
<element name="sim" nillable="true" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="pairNumbersResponse">
<complexType>
<sequence>
<element name="pairNumbersReturn" type="impl:Status"/>
</sequence>
</complexType>
</element>
<element name="releaseNumbers">
<complexType>
<sequence>
<element name="iterationGuid" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="releaseNumbersResponse">
<complexType>
<sequence>
<element name="releaseNumbersReturn" type="impl:Status"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="chooseNumbersRequest">
<wsdl:part element="impl:chooseNumbers" name="parameters"/>
</wsdl:message>
<wsdl:message name="releaseNumbersResponse">
<wsdl:part element="impl:releaseNumbersResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="pairNumbersResponse">
<wsdl:part element="impl:pairNumbersResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="chooseNumbersResponse">
<wsdl:part element="impl:chooseNumbersResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="releaseNumbersRequest">
<wsdl:part element="impl:releaseNumbers" name="parameters"/>
</wsdl:message>
<wsdl:message name="getFreeNumbersRequest">
<wsdl:part element="impl:getFreeNumbers" name="parameters"/>
</wsdl:message>
<wsdl:message name="pairNumbersRequest">
<wsdl:part element="impl:pairNumbers" name="parameters"/>
</wsdl:message>
<wsdl:message name="getFreeNumbersResponse">
<wsdl:part element="impl:getFreeNumbersResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="ActivationImpl">
<wsdl:operation name="getFreeNumbers">
<wsdl:input message="impl:getFreeNumbersRequest"
name="getFreeNumbersRequest"/>
<wsdl:output message="impl:getFreeNumbersResponse"
name="getFreeNumbersResponse"/>
</wsdl:operation>
<wsdl:operation name="chooseNumbers">
<wsdl:input message="impl:chooseNumbersRequest"
name="chooseNumbersRequest"/>
<wsdl:output message="impl:chooseNumbersResponse"
name="chooseNumbersResponse"/>
</wsdl:operation>
<wsdl:operation name="pairNumbers">
<wsdl:input message="impl:pairNumbersRequest"
name="pairNumbersRequest"/>
<wsdl:output message="impl:pairNumbersResponse"
name="pairNumbersResponse"/>
</wsdl:operation>
<wsdl:operation name="releaseNumbers">
<wsdl:input message="impl:releaseNumbersRequest"
name="releaseNumbersRequest"/>
<wsdl:output message="impl:releaseNumbersResponse"
name="releaseNumbersResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ActivationServiceSoapBinding"
type="impl:ActivationImpl">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>;
<wsdl:operation name="getFreeNumbers">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getFreeNumbersRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getFreeNumbersResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="chooseNumbers">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="chooseNumbersRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="chooseNumbersResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="pairNumbers">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="pairNumbersRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="pairNumbersResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="releaseNumbers">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="releaseNumbersRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="releaseNumbersResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ActivationImplService">
<wsdl:port binding="impl:ActivationServiceSoapBinding"
name="ActivationService">
<wsdlsoap:address
location="http://localhost:8080/ecrm-soa/ActivationService"/>;
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
I tested it in axis 1.2.1, 1.3 and 1.4 - always is the same wrong results in
webservicestudio of course.
Tnaks for help!
Best regards,
Szymono.
--
View this message in context: http://www.nabble.com/Problem-with-array-in-custom-type-in-.net-client-tf2603676.html#a7264664
Sent from the Axis - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org