Hello,
I'm having a problem with the namespace that is set on a returned Element. The element appears on the wire with an empty namespace, but it's children elements have the proper namespace. ie: --------------- <?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:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <connectivityReturn xmlns=""> <ns1:GMML xmlns:ns1="http://blah/GMML"> <!-- Deleted --> </ns1:GMML> </connectivityReturn> </soapenv:Body> </soapenv:Envelope> ------------------ I have a class: --------------- //import stuff and package name chopped public class ConnectivityTest { public ConnectivityReturn connectivity () { GMML toReturn = new GMML(); //Set a bunch of stuff on the GMML object ... ConnectivityReturn CR = new ConnectivityReturn(); CR.setGMML(toReturn); return CR; } } --------------- I deployed using this deployment descriptor: --------------- <deployment xmlns="http://xml.apache.org/axis/wsdd/"> <service name="Connectivity" provider="java:RPC" style="document" use="literal"> <parameter name="className" value="GMML.ConnectivityTest"/> <parameter name="allowedMethods" value="*"/> <namespace>http://blah/GMML/</namespace> </service> </deployment> ------------------ And the WSDL2Java was done with this WSDL : ------------------- <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://blah/GMML" xmlns:impl="http://blah/GMML" xmlns:intf="http://blah/GMML" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <xs:schema elementFormDefault="qualified" targetNamespace="http://blah/GMML"> <xs:element name="ConnectivityReturn"> <xs:complexType> <xs:sequence> <xs:element minOccurs="1" maxOccurs="1" ref="intf:GMML"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GMML"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Protected" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <!-- SNIP! --> </xs:schema> </wsdl:types> <wsdl:message name="connectivityResponse"> <wsdl:part name="connectivityReturn" element="intf:ConnectivityReturn"/> </wsdl:message> <wsdl:message name="connectivityRequest"/> <wsdl:portType name="ConnectivityTest"> <wsdl:operation name="connectivity"> <wsdl:input name="connectivityRequest" message="impl:connectivityRequest"/> <wsdl:output name="connectivityResponse" message="impl:connectivityResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="ConnectivitySoapBinding" type="impl:ConnectivityTest"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="connectivity"> <soap:operation soapAction=""/> <wsdl:input name="connectivityRequest"> <soap:body use="literal" namespace="http://blah/GMML/"/> </wsdl:input> <wsdl:output name="connectivityResponse"> <soap:body use="literal" namespace="http://blah/GMML/"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ConnectivityTestService"> <wsdl:port name="Connectivity" binding="impl:ConnectivitySoapBinding"> <soap:address location="http://localhost:8080/axis/services/Connectivity"/> </wsdl:port> </wsdl:service> </wsdl:definitions> ------------------------- Can someone tell me why the <connectivityReturn> element gets a "" namespace, and how I can set it. Does it need to be set? Any other bad programming habits? :) (Axis 1.1b on Tomcat 4.1.18) Thanks, -W