Hi!
I am trying to implement a very simple BPEL process using Eclipse BPEL with
the latest updates and ODE integration provided last week. It's just to test
if I can call a webservice which runs in the same engine like the calling
one. The process can be deployed an compiled, but when I call it, I get an
error:
>From the log:
910406 [ODEServer-4] ERROR org.apache.ode.bpel.runtime.ASSIGN - Assignment
Fault: {
http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=64,faultExplanation=Noresults
for expression: {OXPath10Expression xs:pDocType}
As an answer:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring xmlns:axis2ns2="
http://docs.oasis-open.org/wsbpel/2.0/process/executable
">axis2ns2:selectionFailure</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
I tried to solve the problem with the hints from this list which are all
about initialization, but I don't come any further. Here is my BPEL process:
<!-- Test6 BPEL Process [Generated by the Eclipse BPEL Designer] -->
<bpel:process name="Test6"
targetNamespace="http://Test6"
suppressJoinFailure="yes"
xmlns:tns="http://Test6"
xmlns:bpel="
http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns="http://webservice.adapter.xynapse.nubizz.de" xmlns:xs="
http://webservice.adapter.xynapse.nubizz.de/xsd">
<!-- Import the client WSDL -->
<bpel:import location="Test6Artifacts.wsdl" namespace="http://Test6"
importType="http://schemas.xmlsoap.org/wsdl/" />
<!-- =================================================================
-->
<!-- PARTNERLINKS
-->
<!-- List of services participating in this BPEL process
-->
<!-- =================================================================
-->
<bpel:partnerLinks>
<!-- The 'client' role represents the requester of this service. -->
<bpel:partnerLink name="client"
partnerLinkType="tns:Test6"
myRole="Test6Provider"
/>
<bpel:partnerLink name="xynapse" partnerLinkType="tns:xynapse"
partnerRole="xynapse"></bpel:partnerLink>
</bpel:partnerLinks>
<!-- =================================================================
-->
<!-- VARIABLES
-->
<!-- List of messages and XML documents used within this BPEL process
-->
<!-- =================================================================
-->
<bpel:variables>
<!-- Reference to the message passed as input during initiation -->
<bpel:variable name="input"
messageType="tns:Test6RequestMessage"/>
<!--
Reference to the message that will be returned to the requester
-->
<bpel:variable name="output"
messageType="tns:Test6ResponseMessage"/>
<bpel:variable name="xynapseResponse"
messageType="ns:submitDocumentResponse"></bpel:variable>
<bpel:variable name="xynapseRequest"
messageType="ns:submitDocumentRequest"></bpel:variable>
</bpel:variables>
<!-- =================================================================
-->
<!-- ORCHESTRATION LOGIC
-->
<!-- Set of activities coordinating the flow of messages across the
-->
<!-- services integrated within this business process
-->
<!-- =================================================================
-->
<bpel:sequence name="main">
<!-- Receive input from requester.
Note: This maps to operation defined in Test6.wsdl
-->
<bpel:receive name="receiveInput" partnerLink="client"
portType="tns:Test6"
operation="process" variable="input"
createInstance="yes"/>
<!-- Generate reply to synchronous request -->
<bpel:assign validate="no" name="Assign">
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><ns0:submitDocument
xmlns:ns0="http://webservice.adapter.xynapse.nubizz.de/xsd" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
</ns0:submitDocument>
</bpel:literal>
</bpel:from>
<bpel:to variable="xynapseRequest"
part="parameters"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:input]]></bpel:query>
</bpel:from>
<bpel:to part="parameters" variable="xynapseRequest">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[xs:pDocType]]></bpel:query>
</bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:input]]></bpel:query>
</bpel:from>
<bpel:to part="parameters" variable="xynapseRequest">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[xs:pDocument]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="Invoke" partnerLink="xynapse"
operation="submitDocument" portType="ns:GenericDocumentServicePortType"
inputVariable="xynapseRequest"
outputVariable="xynapseResponse"></bpel:invoke>
<bpel:assign validate="no" name="Assign1">
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><tns:Test6Response
xmlns:tns="http://Test6" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<tns:result></tns:result>
</tns:Test6Response>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:input]]></bpel:query>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:reply name="replyOutput"
partnerLink="client"
portType="tns:Test6"
operation="process"
variable="output"
/>
</bpel:sequence>
</bpel:process>
And here is the WSDL of the web service I like to call:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:axis2="http://webservice.adapter.xynapse.nubizz.de" xmlns:ns1="
http://org.apache.axis2/xsd" xmlns:wsaw="
http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="
http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns0="
http://webservice.adapter.xynapse.nubizz.de/xsd" 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/" targetNamespace="
http://webservice.adapter.xynapse.nubizz.de">
<wsdl:types>
<xs:schema xmlns:xsd="
http://webservice.adapter.xynapse.nubizz.de/xsd"
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://webservice.adapter.xynapse.nubizz.de/xsd">
<xs:element name="submitDocument">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="pDocType"
nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="pDocument"
nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="submitDocumentResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return"
type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="submitDocumentRequest">
<wsdl:part name="parameters" element="ns0:submitDocument"/>
</wsdl:message>
<wsdl:message name="submitDocumentResponse">
<wsdl:part name="parameters" element="ns0:submitDocumentResponse"/>
</wsdl:message>
<wsdl:portType name="GenericDocumentServicePortType">
<wsdl:operation name="submitDocument">
<wsdl:input message="axis2:submitDocumentRequest"
wsaw:Action="urn:submitDocument"/>
<wsdl:output message="axis2:submitDocumentResponse"
wsaw:Action="urn:submitDocumentResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GenericDocumentServiceSOAP11Binding"
type="axis2:GenericDocumentServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="submitDocument">
<soap:operation soapAction="urn:submitDocument"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="GenericDocumentServiceSOAP12Binding"
type="axis2:GenericDocumentServicePortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="submitDocument">
<soap12:operation soapAction="urn:submitDocument"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="GenericDocumentServiceHttpBinding"
type="axis2:GenericDocumentServicePortType">
<http:binding verb="POST"/>
<wsdl:operation name="submitDocument">
<http:operation
location="GenericDocumentService/submitDocument"/>
<wsdl:input>
<mime:content type="text/xml" part="submitDocument"/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="submitDocument"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="GenericDocumentService">
<wsdl:port name="GenericDocumentServiceSOAP11port_http"
binding="axis2:GenericDocumentServiceSOAP11Binding">
<soap:address location="
http://localhost:8080/ode/processes/GenericDocumentService"/>
</wsdl:port>
<wsdl:port name="GenericDocumentServiceSOAP12port_http"
binding="axis2:GenericDocumentServiceSOAP12Binding">
<soap12:address location="
http://localhost:8080/axis2/services/GenericDocumentService
"/><soap12:binding></soap12:binding>
<soap:address location="
http://localhost:8080/ode/processes/GenericDocumentService"/>
</wsdl:port>
<wsdl:port name="GenericDocumentServiceHttpport"
binding="axis2:GenericDocumentServiceHttpBinding">
<http:address location="
http://localhost:8080/axis2/services/GenericDocumentService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Any help is appreciated!
Regards,
Andreas