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