[org.jbpm.bpel.sublang.xpath.XPathEvaluator] cannot create element for step with non-numeric predicate: [(DefaultNameStep): arg0]
christy Mar 2, 2010 10:06 AMHi to everybody!
Please help me!
Here is my simple bpel process:
<process name="HelloWorld" targetNamespace="http://nmsp" xmlns:tns="http://nmsp"
xmlns:buoysnmsp="http://buoys.ws.esimo/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
<import importType="http://schemas.xmlsoap.org/wsdl/" location="hello.wsdl"
namespace="http://nmsp"/>
<partnerLinks>
<partnerLink myRole="Greeter" name="caller" partnerLinkType="tns:Greeter-Caller"> </partnerLink>
<partnerLink partnerRole="BuoysRole" name="BuoysWSJaxWsService"
partnerLinkType="tns:BuoysLink"> </partnerLink>
</partnerLinks>
<variables>
<variable messageType="tns:nameMessage" name="request"> </variable>
<variable type="xsd: int" name="n"> </variable>
<variable messageType="tns:greetingMessage" name="response"> </variable>
<variable messageType="buoysnmsp:BuoysWSJaxWs_getIntArr" name="BuoysWSJaxWs_getIntArr"> </variable>
<variable messageType="buoysnmsp:BuoysWSJaxWs_getIntArrResponse" name="BuoysWSJaxWs_getIntArrResponse"> </variable>
</variables>
<correlationSets>
<correlationSet name="trip" properties="tns:tripLocator"/>
</correlationSets>
<sequence name="MainSeq">
<receive createInstance="yes" name="ReceiveName" operation="sayHello" partnerLink="caller"
portType="tns:Greeter" variable="request"> </receive>
<assign>
<copy>
<from>1</from>
<to variable="n"/>
</copy>
<copy>
<from>$request.name/leafElement[$n]</from>
<to>$BuoysWSJaxWs_getIntArr.getIntArr/arg0[$n]</to>
</copy>
<!--</copy>-->
</assign>
<invoke name="InvokeBuoys" operation="getIntArr" partnerLink="BuoysWSJaxWsService"
portType="buoysnmsp:BuoysWSJaxWs" inputVariable="BuoysWSJaxWs_getIntArr"
outputVariable="BuoysWSJaxWs_getIntArrResponse">
<correlations>
<correlation set="trip" initiate="yes" pattern="in"/>
</correlations>
</invoke>
<assign>
<copy>
<from>$BuoysWSJaxWs_getIntArrResponse.getIntArrResponse</from>
<to>$response.greeting</to>
</copy>
</assign>
<reply name="SendGreeting" operation="sayHello" partnerLink="caller" portType="tns:Greeter"
variable="response"> </reply>
</sequence>
</process>
This is its wsdl:
<definitions targetNamespace="http://nmsp"
xmlns:tns="http://nmsp" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:buoysnmsp="http://buoys.ws.esimo/"
xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:plt="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<import namespace="http://buoys.ws.esimo/" location="BuoysWSJaxWsService.wsdl" />
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://nmsp">
<xsd:element name="newElement" type = "tns:newElement" />
<xsd:complexType name="newElement">
<xsd:sequence>
<xsd:element name="leafElement" type = "xsd:double" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="greetingMessage">
<part name="greeting" element="tns:newElement" />
</message>
<message name="nameMessage">
<part name="name" element="tns:newElement" />
</message>
<portType name="Greeter">
<operation name="sayHello">
<input message="tns:nameMessage" />
<output message="tns:greetingMessage" />
</operation>
</portType>
<plt:partnerLinkType name="Greeter-Caller">
<plt:role name="Greeter" portType="tns:Greeter">
</plt:role>
</plt:partnerLinkType>
<plt:partnerLinkType name="BuoysLink">
<plt:role name="BuoysRole" portType="buoysnmsp:BuoysWSJaxWs">
</plt:role>
</plt:partnerLinkType>
<bpel:property name="tripLocator" type="xsd:int" />
<bpel:propertyAlias propertyName="tns:tripLocator" messageType="buoysnmsp:BuoysWSJaxWs_getIntArr"
part="getIntArr" />
<bpel:propertyAlias propertyName="tns:tripLocator" messageType="buoysnmsp:BuoysWSJaxWs_getIntArrResponse"
part="getIntArrResponse" />
</definitions>
When I try to invoke it I get the error:
ERROR [org.jbpm.bpel.sublang.xpath.XPathEvaluator] cannot create element for step with non-numeric predicate: [(DefaultNameStep): arg0]
Why? what is wrong?
P.S. it is interasting that if I change "to" in <copy>
<from>$request.name/leafElement[$n]</from>
<to>$BuoysWSJaxWs_getIntArr.getIntArr/arg0[$n]</to>
</copy>
to <copy>
<from>$request.name/leafElement[$n]</from>
<to>$BuoysWSJaxWs_getIntArr.getIntArr/arg0[1]</to>
</copy>
everything works fine. Where is my mistake?
Thank you!