On Tue, Jul 1, 2008 at 5:52 PM, Matthieu Riou <[EMAIL PROTECTED]> wrote:
> The stateful exchange protocol is the specification, implicit correlation
> describes its implementation in ODE. So they both describe the same thing,
> only the first is generic whereas the second describes how it works in ODE.
>
> Both only apply when you're dealing with services that support this
> protocol, so you would have to implement it. Otherwise you have to rely on
> classic correlation which would be the only way for the engine to know which
> process instance is supposed to be called back. Thing is, even if in your
> service doesn't really have state, as soon as you start a process instance
> and mean to call it back, state exists. Because the engine needs to a way to
> differentiate that specific instance from the others. Correlation is then a
> way to "bind" that state to the data present in messages.
>
> Btw you have attached all your WSDL documents but not your BPEL so I can't
> really see on which message you would be able to correlate.
Hi Matthieu, thanks for your prompt response,
I have changed the setup to use explicit correlation. I have attached
the relevant files ready for deployment in ODE. Now, this new version is
deployed ok but when invoked I get a NPE back (see the complete log
attached):
ERROR - GeronimoLog.error(108) | Method "run" in class
"org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.
java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:760)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:88)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...
Any ideas?
Best regards
Stelios
DEBUG - GeronimoLog.debug(66) | Found a header in incoming message, checking if
there are endpoints there.
DEBUG - GeronimoLog.debug(66) | Received request message for
Test2.{urn:test2:stelios}process
DEBUG - GeronimoLog.debug(66) | Starting transaction.
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{urn:test2:stelios}Test2Service --> BpelProcess[{urn:test2:stelios}Test2-17]
DEBUG - GeronimoLog.debug(66) | ODE routed to operation Operation: name=process
style=REQUEST_RESPONSE,1
Input: name=null
Message: name={urn:test2:stelios}Test2RequestMessage
Part: name=payload
elementName={urn:test2:stelios}Test2Request
Output: name=null
Message: name={urn:test2:stelios}Test2ResponseMessage
Part: name=payload
elementName={urn:test2:stelios}Test2Response from service
{urn:test2:stelios}Test2Service
DEBUG - GeronimoLog.debug(66) | Invoking ODE using MEX
{MyRoleMex#hqejbhcnphr3ebwdi9psh6 [Client hqejbhcnphr3ebwdi9psh5] calling
{urn:test2:stelios}Test2Service.process(...)}
DEBUG - GeronimoLog.debug(66) | Message content: <?xml version="1.0"
encoding="UTF-8"?>
<message><payload><Test2Request xmlns="urn:test2:stelios"
xmlns:axis2ns1="urn:test2:stelios"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><input>fdsfsfsf</input></Test2Request></payload></message>
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{urn:test2:stelios}Test2Service --> BpelProcess[{urn:test2:stelios}Test2-17]
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==>
BpelProcess[{urn:test2:stelios}Test2-17]
DEBUG - GeronimoLog.debug(66) | Commiting ODE MEX
{MyRoleMex#hqejbhcnphr3ebwdi9psh6 [Client hqejbhcnphr3ebwdi9psh5] calling
{urn:test2:stelios}Test2Service.process(...)}
DEBUG - GeronimoLog.debug(66) | Commiting transaction.
DEBUG - GeronimoLog.debug(66) | >>
handleWorkEvent(jobData={type=INVOKE_INTERNAL, mexid=hqejbhcnphr3ebwdi9psh6,
pid={urn:test2:stelios}Test2-17})
DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid
hqejbhcnphr3ebwdi9psh6
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.partnerRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 29.process: MSG RCVD keys=[]
mySessionId=null partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 29.process: routing failed, CREATING
NEW INSTANCE
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for instance
4451. INDEXED STATE={}
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: USING CORRELATOR
29.process
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: CHECKING for NEW
INSTANCE match
DEBUG - GeronimoLog.debug(66) | INPUTMSGMATCH: Changing process instance state
from ready to active
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: FOUND match for
NEW instance mexRef={MyRoleMex#hqejbhcnphr3ebwdi9psh6 [Client
hqejbhcnphr3ebwdi9psh5] calling {urn:test2:stelios}Test2Service.process(...)}
DEBUG - GeronimoLog.debug(66) | Couldn't extract property '{OProperty
{urn:test2:steliosArtifacts}OrderId}' in property pre-extraction:
org.apache.ode.bpel.common.FaultException: No results for expression:
{OXPath10Expression /OrderId}
DEBUG - GeronimoLog.debug(66) | Couldn't extract property '{OProperty
{urn:test2:steliosArtifacts}OrderId}' in property pre-extraction:
org.apache.ode.bpel.common.FaultException: No results for expression:
{OXPath10Expression /OrderId}
DEBUG - GeronimoLog.debug(66) | Couldn't extract property '{OProperty
{urn:test2:steliosArtifacts}OrderId}' in property pre-extraction:
org.apache.ode.bpel.common.FaultException: No results for expression:
{OXPath10Expression /OrderId}
DEBUG - GeronimoLog.debug(66) | Couldn't extract property '{OProperty
{urn:test2:steliosArtifacts}OrderId}' in property pre-extraction:
org.apache.ode.bpel.common.FaultException: No results for expression:
{OXPath10Expression /OrderId}
DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER:
partnerLink={PartnerLinkInstance
partnerLinkDecl=OPartnerLink#30,scopeInstanceId=4501}, op=initiate channel=null)
DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP):
sessionId=hqejbhcnphr3ebwdi9psh9 partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://sample.bpel.org/bpel/sample}MyHelloWorldResponderService -->
BpelProcess[{urn:test2:stelios}Test2-17]
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://sample.bpel.org/bpel/sample}MyHelloWorldResponderService -->
BpelProcess[{urn:test2:stelios}Test2-17]
DEBUG - GeronimoLog.debug(66) | Invoking in a p2p interaction, partnerrole
{PartnerRoleMex#hqejbhcnphr3ebwdi9psha [PID {urn:test2:stelios}Test2-17]
calling null.initiate(...)} - myrole {MyRoleMex#hqejbhcnphr3ebwdi9pshb [Client
hqejbhcnphr3ebwdi9psha] calling
{http://sample.bpel.org/bpel/sample}MyHelloWorldResponderService.initiate(...)}
DEBUG - GeronimoLog.debug(66) | Setting myRoleMex session ids for p2p
interaction, mySession null - partnerSess hqejbhcnphr3ebwdi9psh9
DEBUG - GeronimoLog.debug(66) | SET MEX property
org.apache.ode.bpel.partnerRoleSessionId = hqejbhcnphr3ebwdi9psh9
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://sample.bpel.org/bpel/sample}MyHelloWorldResponderService -->
BpelProcess[{urn:test2:stelios}Test2-17]
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==>
BpelProcess[{urn:test2:stelios}Test2-17]
ERROR - GeronimoLog.error(108) | Method "run" in class
"org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.
java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:760)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:88)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:812)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:194)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:362)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
ERROR - GeronimoLog.error(108) | Scheduled job failed;
jobDetail={type=INVOKE_INTERNAL, mexid=hqejbhcnphr3ebwdi9psh6,
pid={urn:test2:stelios}Test2-17}
java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:812)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:194)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:362)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:760)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:88)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
... 17 more
ERROR - GeronimoLog.error(108) | Error while executing transaction
org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:338)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:341)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:340)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:179)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:339)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:336)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:812)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:194)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:362)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:328)
... 11 more
Caused by: java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:760)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:88)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
... 17 more<?xml version="1.0"?>
<definitions name="HelloWorld"
targetNamespace="http://sample.bpel.org/bpel/sample"
xmlns:tns="http://sample.bpel.org/bpel/sample"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
<types>
<schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://sample.bpel.org/bpel/sample"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<element name="HelloWorldRequest">
<complexType>
<sequence>
<element name="input" type="xsd:string" />
<element name="OrderId" type="xsd:string"></element>
</sequence>
</complexType>
</element>
<element name="HelloWorldResponse">
<complexType>
<sequence>
<element name="result" type="xsd:string" />
<element name="OrderId" type="xsd:string"></element>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
<message name="HelloWorldRequestMessage">
<part name="payload" element="tns:HelloWorldRequest"/>
</message>
<message name="HelloWorldResponseMessage">
<part name="payload" element="tns:HelloWorldResponse"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
<!-- portType implemented by the HelloWorld BPEL process -->
<portType name="MyHelloWorld">
<operation name="initiate">
<input message="tns:HelloWorldRequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of HelloWorld BPEL process
for asynchronous callback purposes
-->
<portType name="HelloWorldCallback">
<operation name="onResult">
<input message="tns:HelloWorldResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
the HelloWorld partnerLinkType binds the provider and
requester portType into an asynchronous conversation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
<plnk:partnerLinkType name="MyHelloWorld">
<plnk:role name="HelloWorldProvider" portType="tns:MyHelloWorld"/>
<plnk:role name="HelloWorldRequester"
portType="tns:HelloWorldCallback"/>
</plnk:partnerLinkType>
<binding name="HelloWorldSoapBinding" type="tns:MyHelloWorld">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="initiate">
<soap:operation soapAction="http://sample.bpel.org/bpel/sample"/>
<input>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<binding name="HelloWorldResponseSoapBinding" type="tns:HelloWorldCallback">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="onResult">
<soap:operation soapAction="http://sample.bpel.org/bpel/sample"/>
<input>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<service name="MyHelloWorldService">
<documentation>Test service</documentation>
<port name="MyHelloWorld" binding="tns:HelloWorldSoapBinding">
<soap:address
location="http://hii:9090/ode/processes/myhelloWorld"/>
</port>
</service>
<service name="MyHelloWorldResponderService">
<documentation>Test service</documentation>
<port name="HelloWorldCallbackPort"
binding="tns:HelloWorldResponseSoapBinding">
<soap:address
location="http://localhost:8080/ode/processes/Test2Clbk"/>
</port>
</service>
</definitions>
<?xml version="1.0" encoding="utf-8" ?>
<!--
###############################################################################
# Copyright (c) 2007 Naci Dai, Eteration A.S. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Naci Dai - initial API and implementation
# Eteration A.S.
###############################################################################
-->
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:plnkTest20="http://sample.bpel.org/bpel/sample"
xmlns:plnkTest21="urn:test2:stelios"
xmlns:plnkTest22="http://sample.bpel.org/bpel/sample"
xmlns:pnsTest2="urn:test2:stelios"
>
<process name="pnsTest2:Test2">
<active>true</active>
<invoke
partnerLink="EchoHelloPL">
<service name="plnkTest20:MyHelloWorldResponderService" port="HelloWorldCallbackPort" />
</invoke>
<provide partnerLink="client">
<service name="plnkTest21:Test2Service" port="Test2Port" />
</provide>
<provide partnerLink="EchoHelloPL">
<service name="plnkTest22:MyHelloWorldResponderService" port="HelloWorldCallbackPort" />
</provide>
</process>
</deploy><?xml version="1.0"?>
<definitions name="Test2"
targetNamespace="urn:test2:stelios"
xmlns:tns="urn:test2:stelios"
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/">
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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="urn:test2:stelios"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="Test2Request">
<complexType>
<sequence>
<element name="input" type="string"/>
</sequence>
</complexType>
</element>
<element name="Test2Response">
<complexType>
<sequence>
<element name="result" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="Test2RequestMessage">
<part name="payload" element="tns:Test2Request"/>
</message>
<message name="Test2ResponseMessage">
<part name="payload" element="tns:Test2Response"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the Test2 BPEL process -->
<portType name="Test2">
<operation name="process">
<input message="tns:Test2RequestMessage" />
<output message="tns:Test2ResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="Test2">
<plnk:role name="Test2Provider" portType="tns:Test2"/>
</plnk:partnerLinkType>
<binding name="NewBinding" type="tns:Test2">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http">
</soap:binding>
<operation name="process">
<soap:operation soapAction="urn:test2:stelios/process"></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<service name="Test2Service">
<port name="Test2Port" binding="tns:NewBinding">
<soap:address location="http://localhost:8080/ode/processes/Test2" />
</port>
</service>
</definitions>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:tns="urn:test2:steliosArtifacts" xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" xmlns:wsdl="http://sample.bpel.org/bpel/sample" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Test2Artifacts" targetNamespace="urn:test2:steliosArtifacts">
<plnk:partnerLinkType name="EchoHelloPLT">
<plnk:role name="EchoHelloServer" portType="wsdl:MyHelloWorld"/>
<plnk:role name="EchoHelloRequester" portType="wsdl:HelloWorldCallback"/>
</plnk:partnerLinkType>
<vprop:property name="OrderId" type="xsd:string"/>
<vprop:propertyAlias messageType="wsdl:HelloWorldRequestMessage" part="payload" propertyName="tns:OrderId">
<vprop:query><![CDATA[/OrderId]]></vprop:query>
</vprop:propertyAlias>
<vprop:propertyAlias messageType="wsdl:HelloWorldResponseMessage" part="payload" propertyName="tns:OrderId">
<vprop:query><![CDATA[/OrderId]]></vprop:query>
</vprop:propertyAlias>
<import location="AsyncHello.wsdl" namespace="http://sample.bpel.org/bpel/sample"/>
</definitions>
<?xml version="1.0" encoding="utf-8" ?>
<!--
###############################################################################
# Copyright (c) 2007 Naci Dai, Eteration A.S. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Naci Dai - initial API and implementation
# Eteration A.S.
###############################################################################
-->
<wsdl:definitions
targetNamespace="urn:test2:stelios"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:pns="urn:test2:stelios"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:prop="http://docs.oasis-open.org/wsbpel/2.0/varprop">
<import namespace="urn:test2:stelios"
location="Test2.wsdl"/>
<wsdl:binding name="NewBinding"
type="pns:Test2">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="process">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body namespace="urn:test2:stelios" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body namespace="urn:test2:stelios" use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Test2Service">
<wsdl:port name="Test2Port"
binding="pns:NewBinding">
<soap:address location="http://localhost:8080/ode/processes/Test2" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>