Hi all,
I'm having a devil of a time trying to build & run some simple BPEL processes
in tomcat/ODE. When I try to send a valid message to the BPEL service, I'm
getting a "selectionFailure" fault back, caused by (I'm assuming) a BPEL
execution error. Here's the webserver log file
(~/apache-tomcat-5.5.28/logs/catalina.out):
DEBUG - GeronimoLog.debug(66) | The system is checking for the operation using
the following WSAAction:
DEBUG - GeronimoLog.debug(66) | Checking for Operation using SOAP message
body's first child's local name : inventoryService
DEBUG - GeronimoLog.debug(66) | Found operation
org.apache.axis2.description.inoutaxisoperat...@11650df
DEBUG - GeronimoLog.debug(66) | Received request message for
Quickstart_bpel_blueprint1_inventoryService.{http://manufacturing.org/wsdl/inventory/bp1}inventoryService
DEBUG - GeronimoLog.debug(66) | Starting transaction.
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService -->
[BpelProcess[{http://manufacturing.org/wsdl/inventory/bp1}InventoryService-15]]
DEBUG - GeronimoLog.debug(66) | ODE routed to operation Operation:
name=inventoryService
style=REQUEST_RESPONSE,1
Input: name=purchaseOrder
Message: name={http://manufacturing.org/wsdl/inventory/bp1}POMessage
Part: name=purchaseOrder
typeName={http://manufacturing.org/xsd/purchase}purchaseOrderType
Output: name=inventoryStatus
Message: name={http://manufacturing.org/wsdl/inventory/bp1}InventoryMessage
Part: name=inventoryPart
typeName={http://manufacturing.org/xsd/inventory}inventoryType
Fault: name=inventoryFaultType
Message: name={http://manufacturing.org/wsdl/inventory/bp1}inventoryFault
Part: name=faultInfo
elementName={http://manufacturing.org/xsd/inventory}inventoryFault from service
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService
DEBUG - GeronimoLog.debug(66) | SET MEX property isTwoWay = true
DEBUG - GeronimoLog.debug(66) | Invoking ODE using MEX
{MyRoleMex#hqejbhcnphr52e5fhhmg6q [Client hqejbhcnphr52e5fhhmg6p] calling
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService.inventoryService(...)}
DEBUG - GeronimoLog.debug(66) | Message content: <?xml version="1.0"
encoding="UTF-8"?>
<message><purchaseOrder xmlns:pur="http://manufacturing.org/xsd/purchase"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<orderId xmlns="http://manufacturing.org/xsd/purchase">123</orderId>
<customerId
xmlns="http://manufacturing.org/xsd/purchase">456</customerId>
<orderDescription
xmlns="http://manufacturing.org/xsd/purchase">OrderVal_Any_Description</orderDescription>
<price xmlns="http://manufacturing.org/xsd/purchase"/>
</purchaseOrder></message>
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==>
BpelProcess[{http://manufacturing.org/wsdl/inventory/bp1}InventoryService-15]
DEBUG - GeronimoLog.debug(66) | Commiting ODE MEX
{MyRoleMex#hqejbhcnphr52e5fhhmg6q [Client hqejbhcnphr52e5fhhmg6p] calling
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService.inventoryService(...)}
DEBUG - GeronimoLog.debug(66) | Commiting transaction.
DEBUG - GeronimoLog.debug(66) | handleWorkEvent: InvokeInternal event for mexid
hqejbhcnphr52e5fhhmg6q
DEBUG - GeronimoLog.debug(66) | >>
handleWorkEvent(jobData={mexid=hqejbhcnphr52e5fhhmg6q,
pid={http://manufacturing.org/wsdl/inventory/bp1}InventoryService-15,
type=INVOKE_INTERNAL})
DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid
hqejbhcnphr52e5fhhmg6q
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:
inventorySevicePLink.inventoryService: MSG RCVD keys=[] mySessionId=null
partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | INPUTMSG:
inventorySevicePLink.inventoryService: routing failed, CREATING NEW INSTANCE
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for instance
1164. INDEXED STATE={}
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: USING CORRELATOR
inventorySevicePLink.inventoryService
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#hqejbhcnphr52e5fhhmg6q [Client
hqejbhcnphr52e5fhhmg6p] calling
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService.inventoryService(...)}
DEBUG - GeronimoLog.debug(66) | ProcessImpl completed with fault
'{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure'
DEBUG - GeronimoLog.debug(66) | Processing an async reply from service
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService
DEBUG - GeronimoLog.debug(66) | Received myrole mex response callback
DEBUG - GeronimoLog.debug(66) | Handling response for MEX
{MyRoleMex#hqejbhcnphr52e5fhhmg6q [Client hqejbhcnphr52e5fhhmg6p] calling
{http://manufacturing.org/wsdl/inventory/bp1}inventoryService.inventoryService(...)}
DEBUG - GeronimoLog.debug(66) | Starting transaction.
DEBUG - GeronimoLog.debug(66) | Fault response message:
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure
DEBUG - GeronimoLog.debug(66) | Returning fault: <?xml version='1.0'
encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring
xmlns:axis2ns2198="http://docs.oasis-open.org/wsbpel/2.0/process/executable">axis2ns2198:selectionFailure</faultstring><detail
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
DEBUG - GeronimoLog.debug(66) | Releasing mex hqejbhcnphr52e5fhhmg6q
DEBUG - GeronimoLog.debug(66) | Comitting transaction.
DEBUG - GeronimoLog.debug(66) | Reply for
Quickstart_bpel_blueprint1_inventoryService.{http://manufacturing.org/wsdl/inventory/bp1}inventoryService
DEBUG - GeronimoLog.debug(66) | Reply message <?xml version='1.0'
encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring
xmlns:axis2ns2198="http://docs.oasis-open.org/wsbpel/2.0/process/executable">axis2ns2198:selectionFailure</faultstring><detail
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
DEBUG - GeronimoLog.debug(66) | Received myrole mex response callback
INFO - GeronimoLog.info(79) | Refreshing SYSTEM CRON jobs.
I'm using SOAPUI to send the messages. Here's a sample message which should
return a success status:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:pur="http://manufacturing.org/xsd/purchase">
<soapenv:Header/>
<soapenv:Body>
<pur:inventoryService>
<purchaseOrder>
<pur:orderId>123</pur:orderId>
<pur:customerId>456</pur:customerId>
<pur:orderDescription>OrderVal_Any_Description</pur:orderDescription>
<pur:price></pur:price>
</purchaseOrder>
</pur:inventoryService>
</soapenv:Body>
</soapenv:Envelope>
Does anyone know why I'm getting this "selectionFailure"?
Thanks!
Bob Brodt