[ http://issues.apache.org/jira/browse/AXIS2-1606?page=comments#action_12448362 ] Deepal Jayasinghe commented on AXIS2-1606: ------------------------------------------
+1 for Kinichiro's suggestion Thanks Deepal > RPCMessageReceiver creates array response in wrong XML namespace > ---------------------------------------------------------------- > > Key: AXIS2-1606 > URL: http://issues.apache.org/jira/browse/AXIS2-1606 > Project: Apache Axis 2.0 (Axis2) > Issue Type: Bug > Components: rpc > Affects Versions: nightly > Environment: all environments > Reporter: Robert Staerk > Assigned To: Deepal Jayasinghe > Attachments: AXIS2-1606.patch, Hello.aar, Hello.java, Hello.wsdl, > MyObject.java, services.xml, SoapResponse.xml > > > I get a SOAP response with the wrong XML namespace > "http://org.apache.axis2/xsd" for a method that returns an array of objects. > The namespace "http://org.apache.axis2/xsd", however is neither used in the > project nor mentioned in the WSDL. In the example below, the namespace should > be "http://service.mydomain.com/xsd". I am using > org.apache.axis2.rpc.receivers.RPCMessageReceiver. > SOAP response: > <?xml version='1.0' encoding='UTF-8'?> > <soapenv:Envelope xmlns:soapenv = "http://www.w3.org/2003/05/soap-envelope"> > <soapenv:Header/> > <soapenv:Body> > <ns:sayHelloResponse xmlns:ns = "http://org.apache.axis2/xsd"> > <ns:return> > <ns:text>Hello,</ns:text> > </ns:return> > <ns:return> > <ns:text>World!</ns:text> > </ns:return> > </ns:sayHelloResponse> > </soapenv:Body> > </soapenv:Envelope> > Server.xml config: > <service name="Hello" scope="application"> > <description> > The Hello web service. > </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="ServiceClass" locked="false"> > com.mydomain.service.Hello > </parameter> > </service> > Java classes: > package com.mydomain.service; > import java.rmi.RemoteException; > import com.mydomain.data.MyObject; > public class Hello { > > public MyObject[] sayHello() throws RemoteException { > return new MyObject[] { > new MyObject("Hello,"), > new MyObject("World!") > }; > } > > } > package com.mydomain.data; > public class MyObject { > private String text; > > public MyObject() { > // empty > } > > public MyObject(String text) { > super(); > this.text = text; > } > public String getText() { > return text; > } > public void setText(String text) { > this.text = text; > } > > > } > WSDL generated by org.apache.ws.java2wsdl.Java2WSDL: > <wsdl:definitions > xmlns:axis2 = "http://service.mydomain.com" > xmlns:soap12 = "http://schemas.xmlsoap.org/wsdl/soap12/" > xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/" > xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/" > xmlns:ns = "http://service.mydomain.com/xsd" > xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/" > targetNamespace = "http://service.mydomain.com"> > <wsdl:types> > <xs:schema > xmlns:xs = "http://www.w3.org/2001/XMLSchema" > xmlns:ax21 = "http://data.mydomain.com/xsd" > attributeFormDefault = "qualified" > elementFormDefault = "qualified" > targetNamespace = "http://data.mydomain.com/xsd"> > <xs:element name = "MyObject" type = "ax21:MyObject"/> > <xs:complexType name = "MyObject"> > <xs:sequence> > <xs:element > name = "text" > nillable = "true" > type = "xs:string"/> > </xs:sequence> > </xs:complexType> > </xs:schema> > <xs:schema > xmlns:xs = "http://www.w3.org/2001/XMLSchema" > xmlns:ns0 = "http://data.mydomain.com/xsd" > attributeFormDefault = "qualified" > elementFormDefault = "qualified" > targetNamespace = "http://service.mydomain.com/xsd"> > <xs:element name = "sayHelloFault"> > <xs:complexType> > <xs:sequence> > <xs:element name = "sayHelloFault" type = > "xs:anyType"/> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:element name = "sayHelloResponse"> > <xs:complexType> > <xs:sequence> > <xs:element > maxOccurs = "unbounded" > name = "return" > nillable = "true" > type = "ns0:MyObject"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:schema> > </wsdl:types> > <wsdl:message name = "sayHelloMessage"/> > <wsdl:message name = "sayHelloResponseMessage"> > <wsdl:part name = "part1" element = "ns:sayHelloResponse"/> > </wsdl:message> > <wsdl:message name = "sayHelloFault"> > <wsdl:part name = "part1" element = "ns:sayHelloFault"/> > </wsdl:message> > <wsdl:portType name = "HelloPortType"> > <wsdl:operation name = "sayHello"> > <wsdl:input message = "axis2:sayHelloMessage"/> > <wsdl:output message = "axis2:sayHelloResponseMessage"/> > <wsdl:fault message = "axis2:sayHelloFault" name = > "sayHelloFault"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name = "HelloSOAP11Binding" type = "axis2:HelloPortType"> > <soap:binding transport = "http://schemas.xmlsoap.org/soap/http" > style = "document"/> > <wsdl:operation name = "sayHello"> > <soap:operation soapAction = "urn:sayHello" style = "document"/> > <wsdl:input> > <soap:body use = "literal" namespace = > "http://service.mydomain.com"/> > </wsdl:input> > <wsdl:output> > <soap:body use = "literal" namespace = > "http://service.mydomain.com"/> > </wsdl:output> > <wsdl:fault name = "sayHelloFault"> > <soap:body use = "literal" namespace = > "http://service.mydomain.com"/> > </wsdl:fault> > </wsdl:operation> > </wsdl:binding> > <wsdl:binding name = "HelloSOAP12Binding" type = "axis2:HelloPortType"> > <soap12:binding transport = "http://schemas.xmlsoap.org/soap/http" > style = "document"/> > <wsdl:operation name = "sayHello"> > <soap12:operation soapAction = "urn:sayHello" style = "document"/> > <wsdl:input> > <soap12:body use = "literal" namespace = > "http://service.mydomain.com"/> > </wsdl:input> > <wsdl:output> > <soap12:body use = "literal" namespace = > "http://service.mydomain.com"/> > </wsdl:output> > <wsdl:fault name = "sayHelloFault"> > <soap12:body use = "literal" namespace = > "http://service.mydomain.com"/> > </wsdl:fault> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name = "Hello"> > <wsdl:port name = "HelloSOAP11port" binding = > "axis2:HelloSOAP11Binding"> > <soap:address location = > "http://localhost:8080/axis2/services/Hello"/> > </wsdl:port> > <wsdl:port name = "HelloSOAP12port" binding = > "axis2:HelloSOAP12Binding"> > <soap12:address location = > "http://localhost:8080/axis2/services/Hello"/> > </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]