Hi Krish,

Yes you will need to add <service> and <binding> definitions to your WSDL in
order to make your service concrete.   This is not something that Ode does
automatically, as we deemed it better for the user explicitly define how to
expose services externally.

You can easily copy and adjust fragments from the examples:
http://svn.apache.org/repos/asf/incubator/ode/trunk/distro-axis2/src/examples/HelloWorld2/
(RPC-Lit binding)
http://svn.apache.org/repos/asf/incubator/ode/trunk/distro-axis2/src/examples/MagicSession/
(Doc-Lit binding)

(I am assuming you're using the Axis2 distribution... if you're using JBI
then it's a different ballgame)

alex



On 3/14/07, Krishnakumar B <[EMAIL PROTECTED]> wrote:

I am trying to create a basic BPEL process using ODE.

The process has

1) Receive
2) Invoke
3) Reply

I have created the BPEL, WSDL for process and have the WSDL for
external web service.

I am trying to write the deploy.xml file but dont know what values to
give for Service Name And Port. The WSDL for my process doesnt have
Service Name and Port.

All the examples in ODE have service endpoints for process WSDL? Is
this required as i dont see this for BPEL flows in other products.

<deploy xmlns="http://ode.fivesight.com/schemas/2006/06/27/dd";
        xmlns:pns="http://process.com"; xmlns:wns="http://wsdl.process.com
">
        <process name="pns:CarRentalProcess">
                <active>true</active>
                <provide partnerLink="XXXX">
                        <service name="wns:XXXX" port="XXXX"/>
                </provide>
        </process>
</deploy>

WSDL for BPEL process

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
        xmlns:tns="http://wsdl.process.com";
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
name="CarRentalProcess"
        xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/";
        xmlns:reserve="http://car.com";
        targetNamespace="http://wsdl.process.com";>
        <wsdl:import namespace="http://car.com";
                location="./CarRentalManagerService.wsdl" />

        <wsdl:message name="CarRentalProcessRequestMessage">
                <wsdl:part name="checkAvailability"
type="reserve:CarRentalManagerSEI_checkAvailability" />
        </wsdl:message>

        <wsdl:portType name="CarRentalProcessPT">
                <wsdl:operation name="checkAvailability">
                        <wsdl:input
message="tns:CarRentalProcessRequestMessage" />
                </wsdl:operation>
        </wsdl:portType>
        <!-- Partner link type -->
        <plnk:partnerLinkType name="CarRentalProcessLT">
                <plnk:role name="carRentalProcessService">
                        <plnk:portType name="tns:CarRentalProcessPT" />
                </plnk:role>
        </plnk:partnerLinkType>

</wsdl:definitions>

and BPEL

<?xml version="1.0" encoding="utf-8"?>

<process name="CarRentalProcess" targetNamespace="http://process.com";
         xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/";
         xmlns:xs="http://www.w3.org/2001/XMLSchema";
         xmlns:carrental="http://process.com";
         xmlns:reserve="http://car.com";>

<partnerLinks>

       <partnerLinks>
          <partnerLink name="client"

partnerLinkType="carrental:CarRentalProcessLT"
                             myRole="carRentalProcessService"

partnerRole="carRentalProcessServiceCustomer"/>
          <partnerLink name="carRentalManager"
                   partnerLinkType="carrental:carRentalLT"
                   partnerRole="carRentalManagerService"/>

        </partnerLinks>

        <variables>
           <variable name="CarRentalProcessRequest"

messageType="carrental:CarRentalProcessRequestMessage"/>
           <variable name="CarRentalManagerRequest"

                messageType="reserve:CarRentalManagerSEI_checkAvailability"/>
           <variable name="CarRentalManagerResponse"

messageType="reserve:CarRentalManagerSEI_checkAvailabilityResponse"/>
           <variable name="CarRentalProcessResponse"
                messageType="carrental:CarRentalProcessResponseMessage"/>
        </variables>

        <sequence>
           <sequence>

                 <!-- Receive the initial request for business travel from
client -->
                 <receive partnerLink="client"
                          portType="carrental:CarRentalProcessPT"
                          operation="checkAvailability"
                          variable="CarRentalProcessRequest"
                          createInstance="yes" />

                   <assign>
                        <copy>
                          <from variable="CarRentalProcessRequest"
part="checkAvailability"/>
                          <to variable="CarRentalManagerRequest"
part="checkAvailability"/>
                        </copy>
                   </assign>

                   <invoke partnerLink="carRentalManager"
                      portType="reserve:CarRentalManagerSEI"
                      operation="checkAvailability"
                      inputVariable="CarRentalManagerRequest"
                      outputVariable="CarRentalManagerResponse" />

                   <assign>
                        <copy>
                          <from variable="CarRentalManagerResponse"
part="checkAvailabilityResponse"/>
                          <to variable="CarRentalManagerResponse"
part="checkAvailabilityResponse"/>
                        </copy>
                   </assign>

                   <reply partnerLink="client"
                          portType="carrental:CarRentalProcessPT"
                          operation="checkAvailability"
                          variable="CarRentalProcessResponse"/>
        </sequence>

</partnerLinks>
</process>

Regards
Krish

Reply via email to