You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Ian Ashley <ia...@picdar.com> on 2008/09/02 14:25:05 UTC

WSDL for attachments and WSDL2Java

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: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org