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>

Reply via email to