Difference in name space in the response when a method is invoked with Array of
Java Bean Vs Just Java Bean
-----------------------------------------------------------------------------------------------------------
Key: AXIS2-1201
URL: http://issues.apache.org/jira/browse/AXIS2-1201
Project: Apache Axis 2.0 (Axis2)
Issue Type: Bug
Components: core
Environment: OS: Windows Xp
Axis2 nightly of Sep-18-2006
Reporter: vikas charak
I have a class with two methods as follows
public class SimpleService {
public Contact[] getAddress(String inputPara) {
Contact info = new Contact();
info.setFirstName("myFirstName1");
info.setLastName("myLastName1");
Contact info2 = new Contact();
info2.setFirstName("myFirstName2");
info2.setLastName("myLastName2");
Contact[] infos = new Contact[2];
infos[0]=info;
infos[1]=info2;
return infos;
}
public Contact getContact(String inputPara) {
Contact info = new Contact();
Contact info = new Contact();
info.setFirstName("myFirstName1");
info.setLastName("myLastName1");
return info;
}
}
When method Contact[] getAddress is invoked I get following respose :
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA
date=200605151000)/Tomcat-5.5
Set-Cookie: JSESSIONID=A760355AE667603DE765E48C06065324; Path=/
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 20 Sep 2006 12:36:21 GMT
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header
/><soapenv:Body><ns:getAddressResponse xmlns:ns="http://org.apache.axis2/xsd">
<ns:return>
<ns:firstName>myFirstName1</ns:firstName>
<ns:lastName>myLastName1</ns:lastName>
<ns:return><ns:firstName>myFirstName2</ns:firstName>
<ns:lastName>myLastName2</ns:lastName>
</ns:return></ns:getAddressResponse></soapenv:Body></soapenv:Envelope>
Now,
When I invoke public Contact getContact, I see following response
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA
date=200605151000)/Tomcat-5.5
Set-Cookie: JSESSIONID=E99870C0D6847ADF559B12EE7866A957; Path=/
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 20 Sep 2006 12:47:06 GMT
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header
/><soapenv:Body>
<ns:getContactResponse
xmlns:ns="http://SimpleService.simpleservice.webservice.wammis.com/types">
<ns:return><ns:firstName>MyFirstName1</ns:firstName>
<ns:lastName>MyLastName1</ns:lastName>
</ns:getContactResponse></soapenv:Body></soapenv:Envelope>
Now here is the issue:
When a method with Array of Beans is invoked I get <ns:getAddressResponse
xmlns:ns="http://org.apache.axis2/xsd">
where without Array it is <ns:getContactResponse
xmlns:ns="http://SimpleService.simpleservice.webservice.wammis.com/types">.
I feel in both the cases xmlns:ns should be
"http://SimpleService.simpleservice.webservice.wammis.com/types". Because this
is what I have in my WSDl and my external non-java client is looking for this.
See below my WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://SimpleService.simpleservice.webservice.wammis.com/types"
xmlns:impl="http://SimpleService.simpleservice.webservice.wammis.com/types"
xmlns:intf="http://SimpleService.simpleservice.webservice.wammis.com/types"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://SimpleService.simpleservice.webservice.wammis.com/types"
elementFormDefault="qualified">
<element name="inputPara" type="xsd:string"/>
<complexType name="Contact">
<sequence>
<element name="firstName" nillable="true" type="xsd:string"/>
<element name="lastName" nillable="true" type="xsd:string"/>
<element name="name" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayOfContact">
<sequence>
<element name="item" type="impl:Contact" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="getAddressReturn">
<complexType>
<sequence>
<element name="item" type="impl:Contact" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="inputPara1" type="xsd:string"/>
<element name="getContactReturn" type="impl:Contact"/>
</schema>
</wsdl:types>
<wsdl:message name="getAddressRequest">
<wsdl:part name="inputPara" element="impl:inputPara"/>
</wsdl:message>
<wsdl:message name="getAddressResponse">
<wsdl:part name="getAddressReturn" element="impl:getAddressReturn"/>
</wsdl:message>
<wsdl:message name="getContactRequest">
<wsdl:part name="inputPara" element="impl:inputPara1"/>
</wsdl:message>
<wsdl:message name="getContactResponse">
<wsdl:part name="getContactReturn" element="impl:getContactReturn"/>
</wsdl:message>
<wsdl:portType name="SimpleService">
<wsdl:operation name="getAddress" parameterOrder="inputPara">
<wsdl:input name="getAddressRequest" message="impl:getAddressRequest"/>
<wsdl:output name="getAddressResponse"
message="impl:getAddressResponse"/>
</wsdl:operation>
<wsdl:operation name="getContact" parameterOrder="inputPara">
<wsdl:input name="getContactRequest" message="impl:getContactRequest"/>
<wsdl:output name="getContactResponse"
message="impl:getContactResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SimpleServiceSoapBinding" type="impl:SimpleService">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getAddress">
<wsdlsoap:operation soapAction="getAddress"/>
<wsdl:input name="getAddressRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getAddressResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getContact">
<wsdlsoap:operation soapAction="getContact"/>
<wsdl:input name="getContactRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getContactResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SimpleService">
<wsdl:port name="SimpleService" binding="impl:SimpleServiceSoapBinding">
<wsdlsoap:address
location="http://localhost:9090/axis2/services/SimpleService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]