Hi, I guess the problem is caused by the following messages in your WSDL,
<wsdl:message name="GetAssetSoapOut"> <wsdl:part name="parameters" element="tns:GetAssetResponse"/> <wsdl:part name="asset" type="s:base64Binary"/> </wsdl:message> <wsdl:message name="StoreAssetSoapIn"> <wsdl:part name="parameters" element="tns:StoreAsset"/> <wsdl:part name="asset" type="s:base64Binary"/> </wsdl:message> Modifying it to something like <wsdl:message name="GetAssetSoapOut"> <wsdl:part name="parameters" element="tns:GetAssetResponse"/> </wsdl:message> <wsdl:message name="StoreAssetSoapIn"> <wsdl:part name="parameters" element="tns:StoreAsset"/> </wsdl:message> and making asset a element of GetAssetResponse and StoreAsset should fix the issue (At least from the point of Axis2. I'm not sure weather this would break Axis1, but I doubt it will). Thanks, Keith. On Tue, Sep 2, 2008 at 4:43 PM, Ian Ashley <[EMAIL PROTECTED]> wrote: > I am trying to create a WSDL for sending attachments that works with > WSDL2Java from Axis1 and Axis2. The following WSDL works fine with > WSDL2Java > from Axis1 but fails with Axis2 reporting > > [ERROR] More than one part for message GetAssetSoapOut > > org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessingExcept > ion: More than one part for message GetAssetSoapOut > > Does anyone know either what I would need to change to make the WSDL work > with Axis1 and 2 or if there is an example anywhere (I have tried to find > one but failed)? > > <?xml version="1.0" encoding="utf-8"?> > > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" > xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" > xmlns:s="http://www.w3.org/2001/XMLSchema" > xmlns:tns="~/WebServices/" > targetNamespace="~/WebServices/"> > <wsdl:types> > <s:schema elementFormDefault="qualified" > targetNamespace="~/WebServices/"> > <s:complexType name="NameTypeValue"> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" name="name" > type="s:string"/> > <s:element minOccurs="1" maxOccurs="1" name="type" > type="tns:FieldType"/> > <s:element minOccurs="1" maxOccurs="1" name="value" > type="s:string"/> > </s:sequence> > </s:complexType> > <s:simpleType name="FieldType"> > <s:restriction base="s:string"> > <s:enumeration value="Text"/> > <s:enumeration value="Number"/> > <s:enumeration value="Boolean"/> > <s:enumeration value="Date"/> > <s:enumeration value="Time"/> > </s:restriction> > </s:simpleType> > > <s:element name="GetAsset"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="sessionID" type="s:string"/> > <s:element minOccurs="1" maxOccurs="1" > name="assetRef" type="s:string"/> > <s:element minOccurs="1" maxOccurs="1" > name="checkOut" type="s:boolean"/> > </s:sequence> > </s:complexType> > </s:element> > <s:element name="GetAssetResponse"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="checkedOut" type="s:boolean"/> > <s:element minOccurs="0" maxOccurs="1" > name="failureReason" type="s:string"/> > </s:sequence> > </s:complexType> > </s:element> > <s:element name="StoreAsset"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="sessionID" type="s:string"/> > <s:element minOccurs="0" maxOccurs="1" > name="assetRef" type="s:string"/> > <s:element minOccurs="0" maxOccurs="1" > name="leafName" type="s:string"/> > <s:element minOccurs="1" maxOccurs="1" > name="checkIn" type="s:boolean"/> > <s:element minOccurs="0" maxOccurs="unbounded" > name="values" type="tns:NameTypeValue"/> > </s:sequence> > </s:complexType> > </s:element> > <s:element name="StoreAssetResponse"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="assetRef" type="s:string"/> > <s:element minOccurs="1" maxOccurs="1" > name="checkedIn" type="s:boolean"/> > <s:element minOccurs="0" maxOccurs="1" > name="failureReason" type="s:string"/> > </s:sequence> > </s:complexType> > </s:element> > </s:schema> > </wsdl:types> > <wsdl:message name="GetAssetSoapIn"> > <wsdl:part name="parameters" element="tns:GetAsset"/> > </wsdl:message> > <wsdl:message name="GetAssetSoapOut"> > <wsdl:part name="parameters" element="tns:GetAssetResponse"/> > <wsdl:part name="asset" type="s:base64Binary"/> > </wsdl:message> > <wsdl:message name="StoreAssetSoapIn"> > <wsdl:part name="parameters" element="tns:StoreAsset"/> > <wsdl:part name="asset" type="s:base64Binary"/> > </wsdl:message> > <wsdl:message name="StoreAssetSoapOut"> > <wsdl:part name="parameters" element="tns:StoreAssetResponse"/> > </wsdl:message> > <wsdl:portType name="VersionCueService"> > <wsdl:operation name="GetAsset"> > <wsdl:input message="tns:GetAssetSoapIn"/> > <wsdl:output message="tns:GetAssetSoapOut"/> > </wsdl:operation> > <wsdl:operation name="StoreAsset"> > <wsdl:input message="tns:StoreAssetSoapIn"/> > <wsdl:output message="tns:StoreAssetSoapOut"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="VersionCueService" type="tns:VersionCueService"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="GetAsset"> > <soap:operation soapAction="~/WebServices/GetAsset" > style="document"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <mime:multipartRelated> > <mime:part> > <soap:body use="literal"/> > </mime:part> > <mime:part> > <mime:content part="asset" > type="application/octet-stream"/> > </mime:part> > </mime:multipartRelated> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="StoreAsset"> > <soap:operation soapAction="~/WebServices/StoreAsset" > style="document"/> > <wsdl:input> > <mime:multipartRelated> > <mime:part> > <soap:body use="literal"/> > </mime:part> > <mime:part> > <mime:content part="asset" > type="application/octet-stream"/> > </mime:part> > </mime:multipartRelated> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="VersionCueService"> > <wsdl:port name="VersionCueService" binding="tns:VersionCueService"> > <soap:address > location="http://localhost:8080/axis/services/VersionCueService"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > Thanks in advance, > Ian > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Keith Chapman Senior Software Engineer WSO2 Inc. Oxygenating the Web Service Platform. http://wso2.org/ blog: http://www.keith-chapman.org