Does the .net client method you're trying to invoke have the proper XmlElementAttribute mapping to your EntDocument class?
 
It should be something like:
 

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://axis.apache.org/ns/interop", ResponseNamespace="http://axis.apache.org/ns/interop", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]

[return: System.Xml.Serialization.XmlElementAttribute("item", Type=typeof(EndDocument))]

public EndDocument[] list(string sid)
{

}
 
I had to manually add the element type mapping to some of my .net clients to properly deserialize the response.
 


Eugene Shershnev <[EMAIL PROTECTED]> wrote:
Hi All,
 
I've searched through the list trying to find why .Net client does not see the array of beans returned by Axis-based wrapped service.
I've tried everything I found except changing the code as was suggested by Eric Chijioke at http://marc.theaimsgroup.com/?l=axis-user&m=109606665519335&w=2
 
The response that I have now looks fine to me, but .Net still gets an empty array back.
 
Any tips will be greatly appreciated.
 
The WSDL is attached (didn't want to make the message body huge) but the response is here:
 
<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>
    <listResponse xmlns="http://enterprise.ent">
      <item xsi:type="ns1:EntDocument" xmlns:ns1="http://enterprise.ent">
        <URI xsi:type="xsd:string">ent://000000000080ea83202a2bf6b9724d04</URI>
        <created xsi:type="xsd:dateTime">2005-02-02T21:42:31.765Z</created>
        <name xsi:type="xsd:string">TEST</name>
        <size xsi:type="xsd:long">0</size>
      </item>
      <item xsi:type="ns2:EntDocument" xmlns:ns2="http://enterprise.ent">
        <URI xsi:type="xsd:string">ent://000000000080f9502c042b57dd68d7eb</URI>
        <created xsi:type="xsd:dateTime">2005-02-08T15:39:49.640Z</created>
        <name xsi:type="xsd:string">FirstNewDocument</name>
        <size xsi:type="xsd:long">0</size>
      </item>
    </listResponse>
  </soapenv:Body>
</soapenv:Envelope>
The WSDL was originally auto-generated by Axis, but was later slightly modified.
 
Also, here is my deploy.wsdd file:
 
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 
  <service name="ent" provider="java:RPC" style="wrapped" use="literal">
    <wsdlFile>ent-wrapped.wsdl</wsdlFile>
 
    <parameter name="className" value="ent.enterprise.EntAPI" />
    <parameter name="allowedMethods" value="load write clear list delete read create login logout"/>
 
    <operation name="list"
        qname="ns:list"
        returnQName="ns:item"
        returnType="ns:ArrayOf_EntDocument"
        xmlns:ns="http://enterprise.ent">
      <parameter name="sid" qname="ns:sid" type="xsd:string" mode="IN" />
    </operation>
 
    <beanMapping
      xmlns:ns="http://enterprise.ent"
      qname="ns:EntDocument"
      languageSpecificType="java:ent.enterprise.EntDocument"/>
  </service>
 
</deployment>
 
Thanks for any help,
Eugene
 


> ATTACHMENT part 2 application/octet-stream name=ent-wrapped.wsdl

Reply via email to