axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Davanum Srinivas (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-1606) RPCMessageReceiver creates array response in wrong XML namespace
Date Tue, 07 Nov 2006 12:04:51 GMT
    [ http://issues.apache.org/jira/browse/AXIS2-1606?page=comments#action_12447764 ] 
            
Davanum Srinivas commented on AXIS2-1606:
-----------------------------------------

Hi Deepal,

Remember we added QName<->Package option in java2wsdl. We just have to honor mappings
in services.xml as well. Can we do it that way? People will need that anyway since they can
do it in java2wsdl, they will need to specify the runtime to do the same. I thought we added
that, looks like we slipped. Will that work?

thanks,
dims

> 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
>    Affects Versions: nightly
>         Environment: all environments
>            Reporter: Robert Staerk
>         Assigned To: Deepal Jayasinghe
>            Priority: Blocker
>         Attachments: 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message