You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Greg Adams (JIRA)" <ax...@ws.apache.org> on 2005/11/21 17:55:41 UTC

[jira] Created: (AXIS-2311) Support for wrapper/literal style services from WSDL that includes complex header types

Support for wrapper/literal style services from WSDL that includes complex header types
---------------------------------------------------------------------------------------

         Key: AXIS-2311
         URL: http://issues.apache.org/jira/browse/AXIS-2311
     Project: Apache Axis
        Type: Improvement
    Versions: 1.3    
 Environment: JDK 1.4, JDK 5
    Reporter: Greg Adams


Given the following WSDL:

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="urn:WidgetPrice"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    targetNamespace="urn:WidgetPrice"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
        <s:schema elementFormDefault="qualified" targetNamespace="urn:WidgetPrice">
            <s:element name="StateIdentifier">
                <s:complexType>
                    <s:all>
                        <s:element name="userContextId" type="s:string" />
                        <s:element name="convId" type="s:string" />
                    </s:all>
                </s:complexType>
            </s:element>
            <s:element name="setWidgetPrice">
                <s:complexType>
                    <s:sequence>
                        <s:element name="name" type="s:string" />
                        <s:element name="price" type="s:float" />
                    </s:sequence>
                </s:complexType>
            </s:element>
            <s:element name="setWidgetPriceResponse">
                <s:complexType />
            </s:element>
            <s:element name="getWidgetPrice">
                <s:complexType>
                    <s:sequence>
                        <s:element name="name" type="s:string" />
                    </s:sequence>
                </s:complexType>
            </s:element>
            <s:element name="getWidgetPriceResponse">
                <s:complexType>
                    <s:sequence>
                        <s:element name="getWidgetPriceResult" type="s:float" />
                    </s:sequence>
                </s:complexType>
            </s:element>
        </s:schema>
    </wsdl:types>
   
    <wsdl:message name="setWidgetPriceRequest">
        <wsdl:part name="state_header" element="tns:StateIdentifier" />
        <wsdl:part name="parameters" element="tns:setWidgetPrice" />
    </wsdl:message>
    <wsdl:message name="setWidgetPriceResponse">
        <wsdl:part name="parameters" element="tns:setWidgetPriceResponse" />
    </wsdl:message>
    <wsdl:message name="getWidgetPriceRequest">
        <wsdl:part name="state_header" element="tns:StateIdentifier" />
        <wsdl:part name="parameters" element="tns:getWidgetPrice" />
    </wsdl:message>
    <wsdl:message name="getWidgetPriceResponse">
        <wsdl:part name="parameters" element="tns:getWidgetPriceResponse" />
    </wsdl:message>
   
    <wsdl:portType name="WidgetPriceSoap">
        <wsdl:operation name="setWidgetPrice">
            <wsdl:input message="tns:setWidgetPriceRequest" />
            <wsdl:output message="tns:setWidgetPriceResponse" />
        </wsdl:operation>
        <wsdl:operation name="getWidgetPrice">
            <wsdl:input message="tns:getWidgetPriceRequest" />
            <wsdl:output message="tns:getWidgetPriceResponse" />
        </wsdl:operation>
    </wsdl:portType>
   
    <wsdl:binding name="WidgetPriceSoapBinding" type="tns:WidgetPriceSoap">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="setWidgetPrice">
            <soap:operation soapAction="urn:WidgetPrice/setWidgetPrice" style="document"/>
            <wsdl:input name="setWidgetPriceRequest">
                <soap:body parts="parameters" use="literal" />
                <soap:header message="tns:setWidgetPriceRequest" part="state_header" use="literal" />
            </wsdl:input>
            <wsdl:output name="setWidgetPriceResponse">
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getWidgetPrice">
            <soap:operation soapAction="urn:WidgetPrice/getWidgetPrice" style="document" />
            <wsdl:input name="getWidgetPriceRequest">
                <soap:body parts="parameters" use="literal" />
                <soap:header message="tns:getWidgetPriceSoapIn" part="state_header" use="literal" />
            </wsdl:input>
            <wsdl:output name="getWidgetPriceResponse">
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="WidgetPrice">
        <wsdl:port name="WidgetPriceSoap" binding="tns:WidgetPriceSoapBinding">
            <soap:address location="http://localhost:2892/NetWidgetPrice/Service.asmx" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

it doesn't appear that Axis (1.3 at least) supports creating a service using wrapped style and literal use. This is probably due to the fact that there is a complex type in the header portion of the messages. If possible, it would be a nice feature to support this.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira