Rob,
 Did you face any interoperability issues when returning the DataHandler array?  I am 
most specifically interested in C# if possible. I couldn't get a C# client to be 
generated for my web service that returns a DataHandler.
Thanks
Srinivas
 
-----Original Message-----
From: rob rowntree [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 11, 2003 6:23 PM
To: [EMAIL PROTECTED]
Subject: RE: Sending Array of DataHandlers


ref: http://marc.theaimsgroup.com/?l=axis-user&m=105650272318648&w=2

i did some modifications to the server method signature, adding string parm to the 
Array of DataHandlers.

i did not define any mapping for the encoding of DH[]. rather, i let axis default to 
its own mapping for the array and for the attribute type of each array element.

below are the successful wsdd and the wsdl returned by axis on the server in response 
to a request of type "?WSDL"

see <operation name="postFile"

--- wsdd ---

<deployment xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";
xmlns:urn="http://attachment.org/types";
xmlns:ns1="http://xml.apache.org/xml-soap"; >

  <service name="urn:EchoAttachmentsService" provider="java:RPC" >
    <parameter name="className" value="samples.attachments.EchoAttachmentsService"/>
    <parameter name="allowedMethods" value="echo echoDir postFile"/>
    <operation name="echo" returnQName="returnqname" returnType="ns1:DataHandler" >
        <parameter name="dh" type="ns1:DataHandler"/>
      </operation>
    <operation name="postFile" returnQName="returnqname" returnType="ns1:StreamSource" 
> <parameter name="topicname" type="xsd:string"/>
        <parameter name="attachments" type="ns1:ArrayOf_apachesoap_DataHandler"/>
      </operation>

 <typeMapping 
deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory
"
   languageSpecificType="java:javax.activation.DataHandler"
qname="ns1:DataHandler"

serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
     />
  </service>

</deployment>

--- wsdl ---

  <?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions 
targetNamespace="http://localhost/axis/services/urn:EchoAttachmentsService";
xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://localhost/axis/services/urn:EchoAttachmentsService";
xmlns:intf="http://localhost/axis/services/urn:EchoAttachmentsService";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
- <wsdl:types>
- <schema targetNamespace="http://xml.apache.org/xml-soap";
xmlns="http://www.w3.org/2001/XMLSchema";>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
- <complexType name="ArrayOf_apachesoap_DataHandler">
- <complexContent>
- <restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="apachesoap:DataHandler[]" />
  </restriction>
  </complexContent>
  </complexType>
  </schema>
- <schema targetNamespace="http://localhost/axis/services/urn:EchoAttachmentsService";
xmlns="http://www.w3.org/2001/XMLSchema";>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
- <complexType name="ArrayOf_apachesoap_DataHandler">
- <complexContent>
- <restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="apachesoap:DataHandler[]" />
  </restriction>
  </complexContent>
  </complexType>
  </schema>
  </wsdl:types>
- <wsdl:message name="echoDirResponse">
  <wsdl:part name="echoDirReturn" type="impl:ArrayOf_apachesoap_DataHandler"
/>
  </wsdl:message>
- <wsdl:message name="echoDirRequest">
  <wsdl:part name="attachments" type="impl:ArrayOf_apachesoap_DataHandler"
/>
  </wsdl:message>
- <wsdl:message name="postFileRequest">
  <wsdl:part name="topicname" type="xsd:string" />
  <wsdl:part name="attachments" type="apachesoap:ArrayOf_apachesoap_DataHandler" />
  </wsdl:message>
- <wsdl:message name="postFileRequest1">
  <wsdl:part name="attachments" type="impl:ArrayOf_apachesoap_DataHandler"
/>
  </wsdl:message>
- <wsdl:message name="postFileResponse">
  <wsdl:part name="returnqname" type="xsd:anyType" />
  </wsdl:message>
- <wsdl:message name="echoRequest">
  <wsdl:part name="dh" type="apachesoap:DataHandler" />
  </wsdl:message>
- <wsdl:message name="postFileResponse1">
  <wsdl:part name="postFileReturn" type="xsd:anyType" />
  </wsdl:message>
- <wsdl:message name="echoResponse">
  <wsdl:part name="returnqname" type="apachesoap:DataHandler" />
  </wsdl:message>
- <wsdl:portType name="EchoAttachmentsService">
- <wsdl:operation name="echo" parameterOrder="dh">
  <wsdl:input message="impl:echoRequest" name="echoRequest" />
  <wsdl:output message="impl:echoResponse" name="echoResponse" />
  </wsdl:operation>
- <wsdl:operation name="postFile" parameterOrder="topicname attachments">
  <wsdl:input message="impl:postFileRequest" name="postFileRequest" />
  <wsdl:output message="impl:postFileResponse" name="postFileResponse" />
  </wsdl:operation>
- <wsdl:operation name="echoDir" parameterOrder="attachments">
  <wsdl:input message="impl:echoDirRequest" name="echoDirRequest" />
  <wsdl:output message="impl:echoDirResponse" name="echoDirResponse" />
  </wsdl:operation>
- <wsdl:operation name="postFile" parameterOrder="attachments">
  <wsdl:input message="impl:postFileRequest1" name="postFileRequest1" />
  <wsdl:output message="impl:postFileResponse1" name="postFileResponse1" />
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="urn:EchoAttachmentsServiceSoapBinding"
type="impl:EchoAttachmentsService">
  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"; />
- <wsdl:operation name="echo">
  <wsdlsoap:operation soapAction="" />
- <wsdl:input name="echoRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost/axis/services/urn:EchoAttachmentsService";
use="encoded" />
  </wsdl:input>
- <wsdl:output name="echoResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost/axis/services/urn:EchoAttachmentsService";
use="encoded" />
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="postFile">
  <wsdlsoap:operation soapAction="" />
- <wsdl:input name="postFileRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost/axis/services/urn:EchoAttachmentsService";
use="encoded" />
  </wsdl:input>
- <wsdl:output name="postFileResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost/axis/services/urn:EchoAttachmentsService";
use="encoded" />
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="echoDir">
  <wsdlsoap:operation soapAction="" />
- <wsdl:input name="echoDirRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://attachments.samples"; use="encoded" />
  </wsdl:input>
- <wsdl:output name="echoDirResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost/axis/services/urn:EchoAttachmentsService";
use="encoded" />
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="postFile">
  <wsdlsoap:operation soapAction="" />
- <wsdl:input name="postFileRequest1">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://attachments.samples"; use="encoded" />
  </wsdl:input>
- <wsdl:output name="postFileResponse1">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost/axis/services/urn:EchoAttachmentsService";
use="encoded" />
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="EchoAttachmentsServiceService">
- <wsdl:port binding="impl:urn:EchoAttachmentsServiceSoapBinding"
name="urn:EchoAttachmentsService">
  <wsdlsoap:address 
location="http://localhost/axis/services/urn:EchoAttachmentsService"; />
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.524 / Virus Database: 321 - Release Date: 10/6/2003

Reply via email to