Hi all,
I am having trouble deploying a BPEL process because there are some errors
reported by BPEL compiler.
The exception is as follows.
java.lang.IllegalStateException: XPath string and xpath node are both null
at
org.apache.ode.bpel.elang.xpath20.compiler.XPath20ExpressionCompilerImpl.doJaxpCompile(XPath20ExpressionCompilerImpl.java:129)
at
org.apache.ode.bpel.elang.xpath20.compiler.XPath20ExpressionCompilerImpl._compile(XPath20ExpressionCompilerImpl.java:121)
at
org.apache.ode.bpel.elang.xpath20.compiler.XPath20ExpressionCompilerImpl.compile(XPath20ExpressionCompilerImpl.java:103)
at
org.apache.ode.bpel.compiler.BpelCompiler.compileExpr(BpelCompiler.java:558)
at
org.apache.ode.bpel.compiler.BpelCompiler.compileExpr(BpelCompiler.java:543)
at
org.apache.ode.bpel.compiler.AssignGenerator.compileFrom(AssignGenerator.java:188)
at
org.apache.ode.bpel.compiler.AssignGenerator.compile(AssignGenerator.java:76)
at
org.apache.ode.bpel.compiler.BpelCompiler$7.run(BpelCompiler.java:922)
at
org.apache.ode.bpel.compiler.BpelCompiler.compile(BpelCompiler.java:1086)
at
org.apache.ode.bpel.compiler.BpelCompiler.compileActivity(BpelCompiler.java:918)
....
There are several similar assign activities which I think may be the cause
of the problem.
<assign>
<copy>
<from
expression="concat(bpws:getVariableData('probeInput','probeData'),bpws:getVariableData('probeInput','probeName'))"/>
<to variable="probeInput" part="probeData"/>
</copy>
</assign>
Variable definitions are as follows
<variables>
<variable name="request" messageType="wns:requestMessage"/>
<variable name="probeInput" messageType="wns:probeMessage"/>
<variable name="reply" messageType="wns:replyMessage"/>
<variable name="internalState"
messageType="wns:internalProcessData"/>
</variables>
Variable probeInput message definition
<wsdl:message name="probeMessage">
<wsdl:part name="probeName" type="xsd:string" />
<wsdl:part name="probeData" type="xsd:string" />
</wsdl:message>
I have checked for the correctness of the message element names etc. But yet
to find the reason for this behavior. Can some one please tell me what I am
doing wrong here? I have attached the BPEL process and the corresponding
wsdl file for your reference.
Best Regards,
Chamith
<!--
~ Licensed to the Apache Software Foundation (ASF) under one ~ or more
contributor license agreements. See the NOTICE file ~ distributed with
this work for additional information ~ regarding copyright ownership.
The ASF licenses this file ~ to you under the Apache License, Version
2.0 (the ~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at ~ ~
http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by
applicable law or agreed to in writing, ~ software distributed under
the License is distributed on an ~ "AS IS" BASIS, WITHOUT WARRANTIES
OR CONDITIONS OF ANY ~ KIND, either express or implied. See the
License for the ~ specific language governing permissions and
limitations ~ under the License.
-->
<wsdl:definitions targetNamespace="http://ode/bpel/unit-test/testFlowActivity1.wsdl"
xmlns:tns="http://ode/bpel/unit-test/testFlowActivity1.wsdl" xmlns="http://ode/bpel/unit-test/testFlowActivity1.wsdl"
xmlns:typens="http://ode/bpel/unit-test/testFlowActivity1.wsdl.types"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<!-- type defs -->
<wsdl:types>
<xsd:schema targetNamespace="http://ode/bpel/unit-test/testFlowActivity1.wsdl.types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="flowIndicator">
<xsd:sequence>
<xsd:element name="indicatorOne" type="xsd:boolean" />
<xsd:element name="indicatorTwo" type="xsd:boolean" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="testMessage">
<xsd:sequence>
<xsd:element name="requestID" type="xsd:string" />
<xsd:element name="requestText" type="xsd:string" />
<xsd:element name="flowIndicators" type="typens:flowIndicator" />
<xsd:element name="loopIndicator" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="requestMessage">
<wsdl:part name="requestMessageData" type="typens:testMessage" />
</wsdl:message>
<wsdl:message name="replyMessage">
<wsdl:part name="replyID" type="xsd:string" />
<wsdl:part name="replyText" type="xsd:string" />
</wsdl:message>
<wsdl:message name="probeMessage">
<wsdl:part name="probeName" type="xsd:string" />
<wsdl:part name="probeData" type="xsd:string" />
</wsdl:message>
<wsdl:message name="internalProcessData">
<wsdl:part name="loop1Counter" type="xsd:int" />
<wsdl:part name="loop1" type="xsd:int" />
</wsdl:message>
<!-- portType supported by the test process -->
<wsdl:portType name="testFlowActivityPT">
<wsdl:operation name="request">
<wsdl:input message="requestMessage" />
<wsdl:output message="replyMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestFlowActivityBinding" type="tns:testFlowActivityPT">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="request">
<soap:operation
soapAction="http://ode/bpel/unit-test/testFlowActivity1.wsdl/request" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TestFlowActivityService">
<wsdl:port name="TestFlowActivityPort" binding="tns:TestFlowActivityBinding">
<soap:address
location="http://localhost:8080/ode/processes/TestFlowActivityService" />
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="testFlowActivityRequest">
<plnk:role name="testFlowActivityService" portType="tns:testFlowActivityPT" />
</plnk:partnerLinkType>
<!--
<plnk:partnerLinkType name="probeRequest">
<plnk:role name="probeService" portType="prb:probeMessagePT" />
</plnk:partnerLinkType>
-->
<vprop:property name="testProbeData" type="xsd:string" />
<vprop:propertyAlias propertyName="tns:testProbeData"
messageType="tns:requestMessage" part="requestMessageData">
<vprop:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
requestText
</vprop:query>
</vprop:propertyAlias>
<vprop:property name="testFlow1" type="xsd:boolean" />
<vprop:propertyAlias propertyName="tns:testFlow1"
messageType="tns:requestMessage" part="requestMessageData">
<vprop:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
flowIndicators/indicatorOne
</vprop:query>
</vprop:propertyAlias>
<vprop:property name="loopInd" type="xsd:string" />
<vprop:propertyAlias propertyName="tns:loopInd"
messageType="tns:requestMessage" part="requestMessageData">
<vprop:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
loopIndicator
</vprop:query>
</vprop:propertyAlias>
</wsdl:definitions>