Hi Anne (and everyone)

I have a similar issue but I have a .NET client consuming an Axis
webservice and I'm seeing the xmlns="" in the response...  I've setup my
wsdl to use doc/lit, so while it's related, I don't think it's an
"RPC-thing"?

I have a class which I let Axis generate a wsdl for (below) and I've
also attached my wsdd entry...

Unfortunately the search hits so many results, finding the right pointer
has been impossible...

Thanks for any pointers,
-Clint

****************************** WSDD ENTRY ******************************

  <service name="myTestService" provider="java:RPC" style="document"
use="literal">
    <parameter name="allowedMethods" value="createLocation" />
    <parameter name="className" value="com.myNamespace.MyService" />
    <namespace>http://http://my-namespace.com</namespace>
    
    --- BEAN MAPPINGS --- 
    
  </service>
****************************** END WSDD ENTRY
****************************** 

****************************** WSDL ****************************** 
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://http://my-namespace.com";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://http://my-namespace.com";
xmlns:intf="http://http://my-namespace.com";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<!--WSDL created by Apache Axis version: 1.2.1
Built on Jun 14, 2005 (09:15:57 EDT)-->
 <wsdl:types>
  <schema elementFormDefault="qualified"
targetNamespace="http://http://my-namespace.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <complexType abstract="true" name="AbstractLocation">
    <sequence/>
   </complexType>
   <complexType name="NewLocation">
    <complexContent>
     <extension base="impl:AbstractLocation">
      <sequence>
       <element name="accountNumber" nillable="true" type="xsd:string"/>
       <element name="address" nillable="true" type="xsd:string"/>
       <element name="city" nillable="true" type="xsd:string"/>
       <element name="country" nillable="true" type="xsd:string"/>
       <element name="county" nillable="true" type="xsd:string"/>
       <element name="floor" nillable="true" type="xsd:string"/>
       <element name="phoneNumber" nillable="true" type="xsd:string"/>
       <element name="postalCode" nillable="true" type="xsd:string"/>
       <element name="siteName" nillable="true" type="xsd:string"/>
       <element name="state" nillable="true" type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <element name="locs">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" minOccurs="0" name="item"
type="impl:NewLocation"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_xsd_anyType">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item"
type="xsd:anyType"/>
    </sequence>
   </complexType>
   <complexType name="ReturnedItems">
    <sequence>
     <element name="errorsExist" type="xsd:boolean"/>
     <element name="returnedItems" nillable="true"
type="impl:ArrayOf_xsd_anyType"/>
    </sequence>
   </complexType>
   <element name="createLocationReturn" type="impl:ReturnedItems"/>
  </schema>
 </wsdl:types>
   <wsdl:message name="createLocationRequest">
      <wsdl:part element="impl:locs" name="locs"/>
   </wsdl:message>
   <wsdl:message name="createLocationResponse">
      <wsdl:part element="impl:createLocationReturn"
name="createLocationReturn"/>
   </wsdl:message>
   <wsdl:portType name="MyService">
      <wsdl:operation name="createLocation" parameterOrder="locs">
         <wsdl:input message="impl:createLocationRequest"
name="createLocationRequest"/>
         <wsdl:output message="impl:createLocationResponse"
name="createLocationResponse"/>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="myTestServiceSoapBinding" type="impl:MyService">
      <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="createLocation">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="createLocationRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="createLocationResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="MyServiceService">
      <wsdl:port binding="impl:myTestServiceSoapBinding"
name="myTestService">
         <wsdlsoap:address
location="http://10.60.93.22:40000/eon/services/myTestService"/>
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>
****************************** END WSDL ****************************** 





















-----Original Message-----
From: John Baker [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, July 20, 2005 5:42 AM
To: [email protected]; Anne Thomas Manes
Subject: Re: .NET server, Axis 1.2.1 client, poorly formed messages

Anne,

You are absolutely correct. The .NET server is exposing
style="document"; style="rpc" came about to fix a broken client (to
Axis) getting confused about what to do when style="document" is present
in the WSDL.

I'll change it back and try this all again :)


John

On Tue, Jul 19, 2005 at 10:07:43AM -0400, Anne Thomas Manes wrote:
> John,
> 
> The empty namespace on the child element of the SOAP Body is caused by

> the fact that the WSDL specifies "rpc" style in the <soap:binding> 
> definition, but it doesn't specify a namespace attribute in the 
> <soap:body> definitions. (When using RPC style, you must specify a 
> namespace attribute in <soap:body>.)
> 
> I'm really astonished to see a .NET server exposing a WSDL that uses 
> RPC/Literal -- .NET doesn't support RPC/Literal. This WSDL is totally 
> wrong for an RPC style service. It looks like a wrapped 
> document/literal style service. As I said in another response I made 
> to you yesterday, you should change the style to "document", and then 
> it should work. (As I mentioned yesterday, you do have a number of 
> elements defined in the schema with no types defined -- you should 
> also define their types.)
> 
> Anne
> 
> On 7/14/05, John Baker <[EMAIL PROTECTED]> wrote:
> > Hello,
> > 
> > I am using Axis (1.2.1) to connect to a .NET server, but the server 
> > isn't deserialising the Axis generated message correctly.
> > 
> > I've used this wsdl:
> > http://www.javasystemsolutions.com/serviceRequestConnector.wsdl
> > 
> > And I've used the wsdl2java program to create my Java stubs.
> > 
> > Now this is what Axis generates for the SubmitGeneralServiceRequest
method:
> > 
> > <?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>
> >   <SubmitGeneralServiceRequest xmlns="">
> >     <ns1:SubmittedGeneralServiceRequest
xmlns:ns1="http://www.caps-solutions.co.uk/schema/uniform/72b/servicereq
uest/sr/srtypes">
> >       <ns1:ServiceRequestIdentification
> > 
> > (etc.)
> > 
> > The .NET server replies:
> > 
> > Server was unable to process request. A valid 
> > SubmittedGeneralServiceRequestType object is required
> > 
> > Now it strikes me that xmlns="" looks wrong.
> > 
> > Does anyone have any ideas what's going on?
> > 
> > Thanks,
> > 
> > 
> > John
> >

Reply via email to