Dear everybody.

I'm a "newbe" in ODE World, but I've got a serious problem trying to deploy a BPEL process in ODE (typically a Null pointer exception !).


I wrote a simple process using Eclipse BPEL Designer, providing one service and invoking two others.

My process is described in BPEL in GetConvertedValue.bpel, and WSDL interface can be found in GetConvertedValue.wsdl. Eclipse generate a new WSDL file dealing with process artefacts, auto-generated.

This process 'try' to invoke two partners :
  - Stock (StockService.wsdl)
  - Convert (ConvertService.wsdl)

I know that I have to bind each partnerLink to endpoints in my deploy.xml descriptor. So, I wrote such binding in 'deploy.xml'.

When I try to deploy the directory in my ODE installation (which is supposed to work using the 'counter' tutorial), basically copying my directory into '/opt/jetty-6.1.6/webapps/ode/WEB-INF/processes', I encounter the following error :

ERROR - GeronimoLog.error(108) | Deployment of GetConvertedStockValue failed, 
aborting for now.
org.apache.ode.bpel.iapi.ContextException: Deployment failed within the engine.
        at 
org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:291)
        at 
org.apache.ode.axis2.deploy.DeploymentPoller.check(DeploymentPoller.java:144)
        at 
org.apache.ode.axis2.deploy.DeploymentPoller.access$300(DeploymentPoller.java:55)
        at 
org.apache.ode.axis2.deploy.DeploymentPoller$PollingThread.run(DeploymentPoller.java:188)
Caused by: java.lang.NullPointerException
        at 
org.apache.ode.axis2.hooks.ODEAxisService.extractServiceName(ODEAxisService.java:128)
        at 
org.apache.ode.axis2.hooks.ODEAxisService.createService(ODEAxisService.java:60)
        at org.apache.ode.axis2.ODEServer.createService(ODEServer.java:299)
        at 
org.apache.ode.axis2.BindingContextImpl.activateMyRoleEndpoint(BindingContextImpl.java:59)
        at org.apache.ode.bpel.engine.BpelProcess.activate(BpelProcess.java:442)
        at 
org.apache.ode.bpel.engine.BpelEngineImpl.registerProcess(BpelEngineImpl.java:221)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:275)
        at org.apache.ode.axis2.ODEServer.handleEvent(ODEServer.java:526)
        at org.apache.ode.axis2.ODEServer.access$100(ODEServer.java:70)
        at 
org.apache.ode.axis2.ODEServer$ProcessStoreListenerImpl.onProcessStoreEvent(ODEServer.java:512)
        at 
org.apache.ode.store.ProcessStoreImpl.fireEvent(ProcessStoreImpl.java:501)
        at 
org.apache.ode.store.ProcessStoreImpl.fireStateChange(ProcessStoreImpl.java:507)
        at 
org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:284)
        ... 3 more

After a quick search inside this mailing list archive, It seems to be a deploy.xml trouble ... but I think I miss a point inside it !

Thanks by advance.

--
 Sebastien Mosser
 EPU Polytech'Nice - Sophia Antipolis, Bureau 314
 CNRS / I3S / Rainbow - http://rainbow.i3s.unice.fr/~mosser
<?xml version="1.0" encoding="UTF-8"?>
<bpws:process exitOnStandardFault="yes"
    expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"
    name="GetConvertedStockValue" suppressJoinFailure="yes"
    targetNamespace="http://rainbow.i3s.unice.fr/orchestrations.samples/";
    xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
    xmlns:ns="http://rainbow.i3s.unice.fr/orchestrations.samples/Artifacts";
    xmlns:ns0="http://implem.stock.services.rainbow.i3s.unice.fr";
    xmlns:ns1="http://implem.converter.services.rainbow.i3s.unice.fr"; xmlns:tns="http://rainbow.i3s.unice.fr/orchestrations.samples/";>
    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
        location="GetConvertedStockValue.wsdl" namespace="http://rainbow.i3s.unice.fr/orchestrations.samples/"/>
   <!-- 
   	  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"; namespace="http://rainbow.i3s.unice.fr/orchestrations.samples/Artifacts"/>
   -->
    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
        location="GetConvertedStockValueArtifacts.wsdl" namespace="http://rainbow.i3s.unice.fr/orchestrations.samples/Artifacts"/>
    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
        location="StockService.wsdl" namespace="http://implem.stock.services.rainbow.i3s.unice.fr"/>
    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/";
        location="ConverterService.wsdl" namespace="http://implem.converter.services.rainbow.i3s.unice.fr"/>
    <bpws:partnerLinks>
        <bpws:partnerLink myRole="GetConvertedStockValueProvider"
            name="client" partnerLinkType="tns:GetConvertedStockValue"/>
        <bpws:partnerLink myRole="StockProvider" name="Stock"
            partnerLinkType="ns:StockPartner" partnerRole="StockProvider"/>
        <bpws:partnerLink myRole="ConverterProvider" name="Convert"
            partnerLinkType="ns:ConverterPartner" partnerRole="ConverterProvider"/>
    </bpws:partnerLinks>
    <bpws:variables>
        <bpws:variable
            messageType="tns:GetConvertedStockValueRequestMessage" name="input"/>
        <bpws:variable
            messageType="tns:GetConvertedStockValueResponseMessage" name="output"/>
        <bpws:variable messageType="ns0:getValueInUSDollarResponse" name="StockResponse"/>
        <bpws:variable messageType="ns0:getValueInUSDollarRequest" name="StockRequest"/>
        <bpws:variable messageType="ns1:ConvertResponse" name="ConvertResponse"/>
        <bpws:variable messageType="ns1:ConvertRequest" name="ConvertRequest"/>
    </bpws:variables>
    <bpws:sequence name="main">
        <bpws:receive createInstance="yes" name="receiveInput"
            operation="process" partnerLink="client"
            portType="tns:GetConvertedStockValue" variable="input"/>
        <bpws:assign name="BuildStockInvocationMessage" validate="no">
            <bpws:copy>
                <bpws:from part="payload" variable="input">
                    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/tns:company]]></bpws:query>
                </bpws:from>
                <bpws:to part="parameters" variable="StockRequest">
                    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns0:companyCode]]></bpws:query>
                </bpws:to>
            </bpws:copy>
        </bpws:assign>
        <bpws:invoke inputVariable="StockRequest"
            name="RetrieveStockValue" operation="getValueInUSDollar"
            outputVariable="StockResponse" partnerLink="Stock" portType="ns0:StockServicePortType"/>
        <bpws:if name="CheckStockAnswer">
            <bpws:sequence name="ThenConvert">
                <bpws:assign name="BuildConvertInvocationMessage" validate="no">
                    <bpws:copy>
                        <bpws:from>
                            <bpws:literal>USD</bpws:literal>
                        </bpws:from>
                        <bpws:to part="parameters" variable="ConvertRequest">
                            <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns1:from]]></bpws:query>
                        </bpws:to>
                    </bpws:copy>
                    <bpws:copy>
                        <bpws:from part="payload" variable="input">
                            <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/tns:money]]></bpws:query>
                        </bpws:from>
                        <bpws:to part="parameters" variable="ConvertRequest">
                            <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns1:to]]></bpws:query>
                        </bpws:to>
                    </bpws:copy>
                    <bpws:copy>
                        <bpws:from part="parameters" variable="StockResponse">
                            <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns0:return]]></bpws:query>
                        </bpws:from>
                        <bpws:to part="parameters" variable="ConvertRequest">
                            <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns1:amount]]></bpws:query>
                        </bpws:to>
                    </bpws:copy>
                </bpws:assign>
                <bpws:invoke inputVariable="ConvertRequest"
                    name="DoConversion" operation="Convert"
                    outputVariable="ConvertResponse"
                    partnerLink="Convert" portType="ns1:ConverterServicePortType"/>
                <bpws:if name="CheckConvertedValue">
                    <bpws:sequence name="ReturnComputedValue">
                        <bpws:assign name="BuildAnswerMessage" validate="no">
                            <bpws:copy>
                                <bpws:from part="parameters" variable="StockResponse">
                                    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns0:return]]></bpws:query>
                                </bpws:from>
                                <bpws:to part="payload" variable="output">
                                    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/tns:computedValue]]></bpws:query>
                                </bpws:to>
                            </bpws:copy>
                        </bpws:assign>
                        <bpws:reply name="replyOutput"
                            operation="process" partnerLink="client"
                            portType="tns:GetConvertedStockValue" variable="output"/>
                    </bpws:sequence>
                    <bpws:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[$ConvertResponse.parameters/ns1:return != 0]]></bpws:condition>
                    <bpws:else>
                        <bpws:throw faultName="bpws:invalidVariables"
                            faultVariable="input" name="UnknownMoney"/>
                    </bpws:else>
                </bpws:if>
            </bpws:sequence>
            <bpws:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[$StockResponse.parameters/ns0:return != 0]]></bpws:condition>
            <bpws:else>
                <bpws:throw faultName="bpws:invalidVariables"
                    faultVariable="input" name="UnknownCompany"/>
            </bpws:else>
        </bpws:if>
    </bpws:sequence>
</bpws:process>
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"; xmlns:tns="http://rainbow.i3s.unice.fr/orchestrations.samples/Artifacts"; xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"; xmlns:wsdl="http://implem.stock.services.rainbow.i3s.unice.fr"; xmlns:wsdl1="http://implem.converter.services.rainbow.i3s.unice.fr"; name="GetConvertedStockValueArtifacts" targetNamespace="http://rainbow.i3s.unice.fr/orchestrations.samples/Artifacts"; xmlns="http://schemas.xmlsoap.org/wsdl/";>
<plnk:partnerLinkType name="StockPartner">
<plnk:role name="StockProvider" portType="wsdl:StockServicePortType"/>
</plnk:partnerLinkType>
<plnk:partnerLinkType name="ConverterPartner">
<plnk:role name="ConverterProvider" portType="wsdl1:ConverterServicePortType"/>
</plnk:partnerLinkType>
<import location="StockService.wsdl" namespace="http://implem.stock.services.rainbow.i3s.unice.fr"/>
<import location="ConverterService.wsdl" namespace="http://implem.converter.services.rainbow.i3s.unice.fr"/>
</definitions>
<?xml version="1.0"?>
<definitions name="GetConvertedStockValue"
        targetNamespace="http://rainbow.i3s.unice.fr/orchestrations.samples/";
        xmlns:tns="http://rainbow.i3s.unice.fr/orchestrations.samples/";
        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
        xmlns="http://schemas.xmlsoap.org/wsdl/";
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     TYPE DEFINITION - List of types participating in this BPEL process 
     The BPEL Designer will generate default request and response types
     but you can define or import any XML Schema type and use them as part 
     of the message types.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <types>
        <schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
                targetNamespace="http://rainbow.i3s.unice.fr/orchestrations.samples/"; 
                xmlns="http://www.w3.org/2001/XMLSchema";>

            <element name="GetConvertedStockValueRequest">
                <complexType>
                    <sequence>
                    	<element name="company" type="string" />
                    	<element name="money" type="string"></element>
                    </sequence>
                </complexType>
            </element>

            <element name="GetConvertedStockValueResponse">
                <complexType>
                    <sequence>
                        <element name="computedValue" type="double"/>
                    </sequence>
                </complexType>
            </element>
        </schema>
    </types>


<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     MESSAGE TYPE DEFINITION - Definition of the message types used as 
     part of the port type defintions
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <message name="GetConvertedStockValueRequestMessage">
        <part name="payload" element="tns:GetConvertedStockValueRequest"/>
    </message>
    <message name="GetConvertedStockValueResponseMessage">
        <part name="payload" element="tns:GetConvertedStockValueResponse"/>
    </message>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PORT TYPE DEFINITION - A port type groups a set of operations into
     a logical service unit.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    

    <!-- portType implemented by the GetConvertedStockValue BPEL process -->
    <portType name="GetConvertedStockValue">
        <operation name="process">
            <input  message="tns:GetConvertedStockValueRequestMessage" />
            <output message="tns:GetConvertedStockValueResponseMessage"/>
        </operation>
    </portType>
  

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PARTNER LINK TYPE DEFINITION
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <plnk:partnerLinkType name="GetConvertedStockValue">
        <plnk:role name="GetConvertedStockValueProvider" portType="tns:GetConvertedStockValue"/>
    </plnk:partnerLinkType>
    
    <binding name="HTTP_Binding" type="tns:GetConvertedStockValue">
    	<http:binding verb="POST"></http:binding>
    	<operation name="process">
    		<http:operation location="/process"></http:operation>
    		<input>
    			<mime:content
    				type="application/x-www-form-urlencoded">
    			</mime:content>
    		</input>
    		<output>
    			<mime:content type="text/xml"></mime:content>
    		</output>
    	</operation>
    </binding>
    <binding name="SOAP_Binding" type="tns:GetConvertedStockValue">
    	<soap:binding style="document"
    		transport="http://schemas.xmlsoap.org/soap/http"; />
    	<operation name="process">
    		<soap:operation
    			soapAction="http://rainbow.i3s.unice.fr/orchestrations.samples/process"; />
    		<input>
    			<soap:body use="literal" />
    		</input>
    		<output>
    			<soap:body use="literal" />
    		</output>
    	</operation>
    </binding>
    <service name="GetConvertedStockValueService">
    	<port name="ConvertedStock_HTTP" binding="tns:HTTP_Binding">
            <http:address location="http://localhost:8080/ode/processes/GetConvertedStockValue/"/>
        </port>
    	<port name="ConvertedStock_SOAP" binding="tns:SOAP_Binding">
    		<soap:address location="http://localhost:8080/ode/processes/GetConvertedStockValue/"; />
    	</port>
    </service>
</definitions>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:ns0="http://implem.converter.services.rainbow.i3s.unice.fr"; xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:ns1="http://org.apache.axis2/xsd"; xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; targetNamespace="http://implem.converter.services.rainbow.i3s.unice.fr";>
    <wsdl:documentation>ConverterService</wsdl:documentation>
    <wsdl:types>
        <xs:schema xmlns:ns="http://implem.converter.services.rainbow.i3s.unice.fr"; attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://implem.converter.services.rainbow.i3s.unice.fr";>
            <xs:element name="Convert">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="from" nillable="true" type="xs:string"/>

                        <xs:element minOccurs="0" name="to" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="amount" type="xs:double"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="ConvertResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" type="xs:double"/>

                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="ConvertRequest">
        <wsdl:part name="parameters" element="ns0:Convert"/>
    </wsdl:message>
    <wsdl:message name="ConvertResponse">

        <wsdl:part name="parameters" element="ns0:ConvertResponse"/>
    </wsdl:message>
    <wsdl:portType name="ConverterServicePortType">
        <wsdl:operation name="Convert">
            <wsdl:input message="ns0:ConvertRequest" wsaw:Action="urn:Convert"/>
            <wsdl:output message="ns0:ConvertResponse" wsaw:Action="urn:ConvertResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ConverterServiceSOAP11Binding" type="ns0:ConverterServicePortType">

        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
        <wsdl:operation name="Convert">
            <soap:operation soapAction="urn:Convert" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>

        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="ConverterServiceSOAP12Binding" type="ns0:ConverterServicePortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
        <wsdl:operation name="Convert">
            <soap12:operation soapAction="urn:Convert" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>

            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="ConverterServiceHttpBinding" type="ns0:ConverterServicePortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="Convert">
            <http:operation location="ConverterService/Convert"/>

            <wsdl:input>
                <mime:content type="text/xml" part="Convert"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="Convert"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ConverterService">

        <wsdl:port name="ConverterServiceSOAP11port_http" binding="ns0:ConverterServiceSOAP11Binding">
            <soap:address location="http://localhost:8080/axis2/services/ConverterService"/>
        </wsdl:port>
        <wsdl:port name="ConverterServiceSOAP12port_http" binding="ns0:ConverterServiceSOAP12Binding">
            <soap12:address location="http://localhost:8080/axis2/services/ConverterService"/>
        </wsdl:port>
        <wsdl:port name="ConverterServiceHttpport" binding="ns0:ConverterServiceHttpBinding">
            <http:address location="http://localhost:8080/axis2/services/ConverterService"/>
        </wsdl:port>

    </wsdl:service>
</wsdl:definitions>
<?xml version="1.0" ?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03";
         xmlns:tns="http://rainbow.i3s.unice.fr/orchestrations.samples/";
         xmlns:stock="http://implem.converter.services.rainbow.i3s.unice.fr";
         xmlns:convert="http://implem.stock.services.rainbow.i3s.unice.fr"; >
       
   <process name="tns:GetConvertedStockValue">
     
     <active>true</active>
     
     <provide partnerLink="tns:client">
       <service name="tns:GetConvertedStockValueService" port="GetConvertedStockValue"/>
     </provide>
 
     <invoke partnerLink="tns:Stock">
     	<service name="stock:StockService" port="stock:StockServiceSOAP11port_http" /> 
     </invoke>
     
      <invoke partnerLink="tns:Convert">
     	<service name="convert:ConverterService" port="convert:ConverterServiceSOAP11port_http" /> 
     </invoke>
   </process>
 </deploy>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:ns0="http://implem.stock.services.rainbow.i3s.unice.fr"; xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:ns1="http://org.apache.axis2/xsd"; xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; targetNamespace="http://implem.stock.services.rainbow.i3s.unice.fr";>
    <wsdl:documentation>StockService</wsdl:documentation>
    <wsdl:types>
        <xs:schema xmlns:ns="http://implem.stock.services.rainbow.i3s.unice.fr"; attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://implem.stock.services.rainbow.i3s.unice.fr";>
            <xs:element name="getValueInUSDollar">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="companyCode" nillable="true" type="xs:string"/>

                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getValueInUSDollarResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" type="xs:double"/>
                    </xs:sequence>
                </xs:complexType>

            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="getValueInUSDollarRequest">
        <wsdl:part name="parameters" element="ns0:getValueInUSDollar"/>
    </wsdl:message>
    <wsdl:message name="getValueInUSDollarResponse">
        <wsdl:part name="parameters" element="ns0:getValueInUSDollarResponse"/>
    </wsdl:message>

    <wsdl:portType name="StockServicePortType">
        <wsdl:operation name="getValueInUSDollar">
            <wsdl:input message="ns0:getValueInUSDollarRequest" wsaw:Action="urn:getValueInUSDollar"/>
            <wsdl:output message="ns0:getValueInUSDollarResponse" wsaw:Action="urn:getValueInUSDollarResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="StockServiceSOAP11Binding" type="ns0:StockServicePortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
        <wsdl:operation name="getValueInUSDollar">

            <soap:operation soapAction="urn:getValueInUSDollar" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:binding name="StockServiceSOAP12Binding" type="ns0:StockServicePortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
        <wsdl:operation name="getValueInUSDollar">
            <soap12:operation soapAction="urn:getValueInUSDollar" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>

            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="StockServiceHttpBinding" type="ns0:StockServicePortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="getValueInUSDollar">
            <http:operation location="StockService/getValueInUSDollar"/>
            <wsdl:input>
                <mime:content type="text/xml" part="getValueInUSDollar"/>

            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="getValueInUSDollar"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="StockService">
        <wsdl:port name="StockServiceSOAP11port_http" binding="ns0:StockServiceSOAP11Binding">
            <soap:address location="http://localhost:8080/axis2/services/StockService"/>

        </wsdl:port>
        <wsdl:port name="StockServiceSOAP12port_http" binding="ns0:StockServiceSOAP12Binding">
            <soap12:address location="http://localhost:8080/axis2/services/StockService"/>
        </wsdl:port>
        <wsdl:port name="StockServiceHttpport" binding="ns0:StockServiceHttpBinding">
            <http:address location="http://localhost:8080/axis2/services/StockService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Reply via email to