Hi there,
I'm actually facing problems when using XPath expressions in my BPEL
process. I always get the fault message below. I was trying around for
quite a while now and I am not able to solve the problem. I was able to
access the message parts, but nothing below them (eg. DataTOin.in
worked, while $DataTOin.in/param did not). The example is oriented at
chapter 8.2 (Usage of Query and Expression Languages) of the BPEL
standard (statusMessage, statusContainer etc.). Is there anybody who
knows how to solve this kind of problem?
Any help would be greatly appreciated!!
Regards,
Christoph
#######################################
fault 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:axis2ns7="http://docs.oasis-open.org/wsbpel/2.0/process/executable">axis2ns7:selectionFailure</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
#######################################
relevant snippet of BPEL process
#######################################
<assign name="assign1">
<copy>
<!-- I tried this without the namespaces, too -->
<from
xmlns:testXsd="http://ifs/xsd">$DataTOin.in/testXsd:param/testWsdl:zahl</from>
<to
xmlns:testXsd="http://ifs/xsd">$DataTOout.out/testXsd:param/testWsdl:zahl</to>
</copy>
</assign>
##########################################
The relevant snippet from ode.log is:
##########################################
2008-05-30 15:17:57,171 : DEBUG - GeronimoLog.debug(66) | Process store
event:
{ProcessStoreEvent#UNDEPLOYED:{http://initial/testbpel}xpathTest-141}
2008-05-30 15:17:57,171 : DEBUG - GeronimoLog.debug(66) | Deactivating
process {http://initial/testbpel}xpathTest-141
2008-05-30 15:17:57,171 : DEBUG - GeronimoLog.debug(66) | Destroying
service {http://ifs}bpelService port testPort
2008-05-30 15:17:57,171 : INFO - GeronimoLog.info(79) | Unregistered
process {http://initial/testbpel}xpathTest-141.
2008-05-30 15:17:57,218 : DEBUG - GeronimoLog.debug(66) | Process store
event: {ProcessStoreEvent#DEPLOYED:{http://initial/testbpel}xpathTest-142}
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Ignoring store
event: {ProcessStoreEvent#DEPLOYED:{http://initial/testbpel}xpathTest-142}
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Process store
event: {ProcessStoreEvent#ACTVIATED:{http://initial/testbpel}xpathTest-142}
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | register:
{http://initial/testbpel}xpathTest-142
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Registering
process {http://initial/testbpel}xpathTest-142 with server.
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Register
process: serviceId={http://ifs}bpelService:testPort,
process=BpelProcess[{http://initial/testbpel}xpathTest-142]
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Activating
{http://initial/testbpel}xpathTest-142
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Destroying
service {http://ifs}bpelService port testPort
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Couldn't find
service {http://ifs}bpelService port testPort to destroy.
2008-05-30 15:17:57,234 : DEBUG - GeronimoLog.debug(66) | Create
AxisService: service={http://ifs}bpelService port=testPort
WSDL=bpelTest.wsdl BPEL=bpelTest.bpel
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | Get import:
import=dto.xsd
parent=file:/C:/Programme/apache-tomcat-6.0.16/webapps/ode/WEB-INF/processes/xpathTester/bpelTest.wsdl
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | resolveEntity:
targetNamespace=http://ifs/xsd schemaLocation=dto.xsd
baseUri=file:/C:/Programme/apache-tomcat-6.0.16/webapps/ode/WEB-INF/processes/xpathTester/bpelTest.wsdl
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | Looking for
Axis2 service configuration file:
file:/C:/Programme/apache-tomcat-6.0.16/webapps/ode/WEB-INF/processes/xpathTester/bpelService.axis2
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | Axis2 service
configuration not found:
file:/C:/Programme/apache-tomcat-6.0.16/webapps/ode/WEB-INF/processes/xpathTester/bpelService.axis2
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | Setting
service with empty namespace replication
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | Created Axis2
service {http://ifs}bpelService
2008-05-30 15:17:57,250 : DEBUG - GeronimoLog.debug(66) | Activated
{http://initial/testbpel}xpathTest-142 myrole testing: EPR is
[EMAIL PROTECTED]
2008-05-30 15:17:57,265 : DEBUG - GeronimoLog.debug(66) | Activated
{http://initial/testbpel}xpathTest-142
2008-05-30 15:17:57,265 : DEBUG - GeronimoLog.debug(66) | Rehydrating
process {http://initial/testbpel}xpathTest-142
2008-05-30 15:17:57,296 : DEBUG - GeronimoLog.debug(66) | Creating
process DAO for {http://initial/testbpel}xpathTest-142
(guid=hqejbhcnphr3bc6es3hv5a)
2008-05-30 15:17:57,296 : INFO - GeronimoLog.info(79) | Registered
process {http://initial/testbpel}xpathTest-142.
2008-05-30 15:17:57,296 : INFO - GeronimoLog.info(79) | Deployment of
artifact xpathTester successful: [{http://initial/testbpel}xpathTest-142]
2008-05-30 15:18:24,718 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-120; rescheduling job
hqejbhcnphr3bc6es3hv4r for 30.05.08 15:19
2008-05-30 15:18:24,828 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-113; rescheduling job
hqejbhcnphr3bc6es3hv4s for 30.05.08 15:19
2008-05-30 15:18:24,875 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-104; rescheduling job
hqejbhcnphr3bc6es3hv4t for 30.05.08 15:19
2008-05-30 15:18:24,890 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-118; rescheduling job
hqejbhcnphr3bc6es3hv4u for 30.05.08 15:19
2008-05-30 15:18:25,000 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-104; rescheduling job
hqejbhcnphr3bc6es3hv4w for 30.05.08 15:19
2008-05-30 15:18:25,000 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-115; rescheduling job
hqejbhcnphr3bc6es3hv4v for 30.05.08 15:19
2008-05-30 15:18:25,000 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-115; rescheduling job
hqejbhcnphr3bc6es3hv4x for 30.05.08 15:19
2008-05-30 15:18:25,046 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-82; rescheduling job
hqejbhcnphr3bc6es3hv50 for 30.05.08 15:19
2008-05-30 15:18:25,093 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-106; rescheduling job
hqejbhcnphr3bc6es3hv52 for 30.05.08 15:19
2008-05-30 15:18:25,093 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-80; rescheduling job
hqejbhcnphr3bc6es3hv51 for 30.05.08 15:19
2008-05-30 15:18:25,093 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-118; rescheduling job
hqejbhcnphr3bc6es3hv53 for 30.05.08 15:19
2008-05-30 15:18:25,140 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-108; rescheduling job
hqejbhcnphr3bc6es3hv54 for 30.05.08 15:19
2008-05-30 15:18:25,156 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-118; rescheduling job
hqejbhcnphr3bc6es3hv56 for 30.05.08 15:19
2008-05-30 15:18:25,156 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-122; rescheduling job
hqejbhcnphr3bc6es3hv55 for 30.05.08 15:19
2008-05-30 15:18:25,187 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-115; rescheduling job
hqejbhcnphr3bc6es3hv57 for 30.05.08 15:19
2008-05-30 15:18:25,187 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-115; rescheduling job
hqejbhcnphr3bc6es3hv59 for 30.05.08 15:19
2008-05-30 15:18:25,187 : INFO - GeronimoLog.info(79) | Received a
scheduled job event for inactive process
{orchestration:test:party2:bpel}party2-124; rescheduling job
hqejbhcnphr3bc6es3hv58 for 30.05.08 15:19
2008-05-30 15:18:57,015 : DEBUG - GeronimoLog.debug(66) | The system is
checking for the operation using the following WSAAction: urn:testIt
2008-05-30 15:18:57,015 : DEBUG - GeronimoLog.debug(66) | Checking for
Operation using SOAP message body's first child's local name : doIt
2008-05-30 15:18:57,015 : DEBUG - GeronimoLog.debug(66) | Received
request message for xpath.{http://ifs}testIt
2008-05-30 15:18:57,015 : DEBUG - GeronimoLog.debug(66) | Starting
transaction.
2008-05-30 15:18:57,015 : DEBUG - GeronimoLog.debug(66) | Routed:
svcQname {http://ifs}bpelService -->
BpelProcess[{http://initial/testbpel}xpathTest-142]
2008-05-30 15:18:57,015 : DEBUG - GeronimoLog.debug(66) | ODE routed to
operation Operation: name=testIt
style=REQUEST_RESPONSE,1
Input: name=null
Message: name={http://ifs}testItMsgIN
Part: name=in
elementName={http://ifs}doIt
Output: name=null
Message: name={http://ifs}testItMsgOUT
Part: name=out
elementName={http://ifs}doItResponse from service {http://ifs}bpelService
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | Invoking ODE
using MEX {MyRoleMex#hqejbhcnphr3bc6es3hv5t [Client
hqejbhcnphr3bc6es3hv5s] calling {http://ifs}bpelService.testIt(...)}
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | Message
content: <?xml version="1.0" encoding="UTF-8"?>
<message><in><doIt xmlns="http://ifs" xmlns:ns2="http://ifs"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<param>
<s1 xmlns="http://ifs/xsd"
xmlns:ns1="http://ifs/xsd">Hallo, Hallo!!</s1>
<zahl xmlns="http://ifs/xsd"
xmlns:ns1="http://ifs/xsd">200</zahl>
</param>
</doIt></in></message>
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | Routed:
svcQname {http://ifs}bpelService -->
BpelProcess[{http://initial/testbpel}xpathTest-142]
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | invoke() EPR=
null ==> BpelProcess[{http://initial/testbpel}xpathTest-142]
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | Commiting ODE
MEX {MyRoleMex#hqejbhcnphr3bc6es3hv5t [Client hqejbhcnphr3bc6es3hv5s]
calling {http://ifs}bpelService.testIt(...)}
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | Commiting
transaction.
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | >>
handleWorkEvent(jobData={mexid=hqejbhcnphr3bc6es3hv5t,
pid={http://initial/testbpel}xpathTest-142, type=INVOKE_INTERNAL})
2008-05-30 15:18:57,031 : DEBUG - GeronimoLog.debug(66) | InvokeInternal
event for mexid hqejbhcnphr3bc6es3hv5t
2008-05-30 15:18:57,062 : DEBUG - GeronimoLog.debug(66) | GET MEX
property org.apache.ode.bpel.myRoleSessionId = null
2008-05-30 15:18:57,062 : DEBUG - GeronimoLog.debug(66) | GET MEX
property org.apache.ode.bpel.myRoleSessionId = null
2008-05-30 15:18:57,062 : DEBUG - GeronimoLog.debug(66) | GET MEX
property org.apache.ode.bpel.partnerRoleSessionId = null
2008-05-30 15:18:57,062 : DEBUG - GeronimoLog.debug(66) | INPUTMSG:
12.testIt: MSG RCVD keys=[] mySessionId=null partnerSessionId=null
2008-05-30 15:18:57,062 : DEBUG - GeronimoLog.debug(66) | INPUTMSG:
12.testIt: routing failed, CREATING NEW INSTANCE
2008-05-30 15:18:57,062 : DEBUG - GeronimoLog.debug(66) |
BpelRuntimeContextImpl created for instance 12007. INDEXED STATE={}
2008-05-30 15:18:57,078 : DEBUG - GeronimoLog.debug(66) | SELECT:
PickResponseChannel#9: USING CORRELATOR 12.testIt
2008-05-30 15:18:57,078 : DEBUG - GeronimoLog.debug(66) | SELECT:
PickResponseChannel#9: CHECKING for NEW INSTANCE match
2008-05-30 15:18:57,078 : DEBUG - GeronimoLog.debug(66) | INPUTMSGMATCH:
Changing process instance state from ready to active
2008-05-30 15:18:57,078 : DEBUG - GeronimoLog.debug(66) | SELECT:
PickResponseChannel#9: FOUND match for NEW instance
mexRef={MyRoleMex#hqejbhcnphr3bc6es3hv5t [Client hqejbhcnphr3bc6es3hv5s]
calling {http://ifs}bpelService.testIt(...)}
2008-05-30 15:18:57,093 : ERROR - GeronimoLog.error(104) | Assignment
Fault:
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=27,faultExplanation=R-Value
expression "{OXPath10Expression
$DataTOin.in/testXsd:param/testWsdl:zahl}" did not select any nodes.
2008-05-30 15:18:57,093 : DEBUG - GeronimoLog.debug(66) | ProcessImpl
completed with fault
'{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure'
2008-05-30 15:18:57,093 : DEBUG - GeronimoLog.debug(66) | Processing an
async reply from service {http://ifs}bpelService
2008-05-30 15:18:57,171 : DEBUG - GeronimoLog.debug(66) | Received
myrole mex response callback
2008-05-30 15:18:57,171 : DEBUG - GeronimoLog.debug(66) | Handling
response for MEX {MyRoleMex#hqejbhcnphr3bc6es3hv5t [Client
hqejbhcnphr3bc6es3hv5s] calling {http://ifs}bpelService.testIt(...)}
2008-05-30 15:18:57,171 : DEBUG - GeronimoLog.debug(66) | Starting
transaction.
2008-05-30 15:18:57,218 : DEBUG - GeronimoLog.debug(66) | Fault response
message:
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure
2008-05-30 15:18:57,218 : 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:axis2ns7="http://docs.oasis-open.org/wsbpel/2.0/process/executable">axis2ns7:selectionFailure</faultstring><detail
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
2008-05-30 15:18:57,218 : DEBUG - GeronimoLog.debug(66) | Releasing mex
hqejbhcnphr3bc6es3hv5t
2008-05-30 15:18:57,218 : DEBUG - GeronimoLog.debug(66) | Comitting
transaction.
2008-05-30 15:18:57,218 : DEBUG - GeronimoLog.debug(66) | Reply for
xpath.{http://ifs}testIt
2008-05-30 15:18:57,218 : 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:axis2ns7="http://docs.oasis-open.org/wsbpel/2.0/process/executable">axis2ns7:selectionFailure</faultstring><detail
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
#######################################
complete BPEL process
#######################################
<process name="xpathTest"
targetNamespace="http://initial/testbpel"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:testWsdl="http://ifs">
<import location="bpelTest.wsdl"
namespace="http://ifs"
importType="http://schemas.xmlsoap.org/wsdl/" />
<partnerLinks>
<partnerLink name="testing" partnerLinkType="testWsdl:testingLT"
myRole="testService" />
</partnerLinks>
<variables>
<variable name="DataTOin" messageType="testWsdl:testItMsgIN" />
<variable name="DataTOout" messageType="testWsdl:testItMsgOUT" />
</variables>
<sequence>
<receive partnerLink="testing" portType="testWsdl:testingPT"
operation="testIt" variable="DataTOin" createInstance="yes">
</receive>
<assign name="assign1">
<copy>
<!-- I tried this without the namespaces, too -->
<from
xmlns:testXsd="http://ifs/xsd">$DataTOin.in/testXsd:param/testWsdl:zahl</from>
<to
xmlns:testXsd="http://ifs/xsd">$DataTOout.out/testXsd:param/testWsdl:zahl</to>
</copy>
</assign>
<reply partnerLink="testing" portType="testWsdl:testingPT"
operation="testIt" variable="DataTOout">
</reply>
</sequence>
</process>
#######################################
complete WSDL
#######################################
<wsdl:definitions
xmlns:pos="http://ifs"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:ns0="http://ifs/xsd"
targetNamespace="http://ifs">
<wsdl:types>
<xs:schema xmlns:ns="http://ifs" attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://ifs">
<xs:import namespace="http://ifs/xsd"
schemaLocation="dto.xsd" />
<xs:element name="doIt">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="param" nillable="true"
type="ns0:DTO"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="doItResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true"
type="ns0:DTO"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="testItMsgIN">
<wsdl:part name="in" element="pos:doIt"/>
</wsdl:message>
<wsdl:message name="testItMsgOUT">
<wsdl:part name="out" element="pos:doItResponse"/>
</wsdl:message>
<wsdl:portType name="testingPT">
<wsdl:operation name="testIt">
<wsdl:input message="pos:testItMsgIN" />
<wsdl:output message="pos:testItMsgOUT" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="bpelTestBinding" type="pos:testingPT">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="testIt">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body
namespace="http://ifs"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body
namespace="http://ifs"
use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="bpelService">
<wsdl:port name="testPort" binding="pos:bpelTestBinding">
<soap:address
location="http://localhost:8080/ode/processes/xpath"/>
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="testingLT">
<plnk:role name="testService" portType="pos:testingPT" />
</plnk:partnerLinkType>
</wsdl:definitions>
#######################################
dto.xsd
#######################################
<xs:schema xmlns:ax21="http://ifs/xsd"
attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://ifs/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="DTO">
<xs:sequence>
<xs:element minOccurs="0" name="s1" nillable="true"
type="xs:string"/>
<xs:element minOccurs="0" name="zahl" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
#######################################
request SOAP message
#######################################
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns2:doIt xmlns:ns2="http://ifs">
<ns2:param>
<ns1:s1 xmlns:ns1="http://ifs/xsd">Hallo, Hallo!!</ns1:s1>
<ns1:zahl xmlns:ns1="http://ifs/xsd">200</ns1:zahl>
</ns2:param>
</ns2:doIt>
</soapenv:Body>
</soapenv:Envelope>