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