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



Reply via email to