Matthieu Riou a écrit :
It seems that the error occurs in the function "InvokePartner" which,
according to svn, has been replaced by the functions "InvokeReliablePartner"
and "InvokeUnreliablePartner" one year ago, but may be that does'nt matter.
Which version of ODE are you using? If you're using a release the code is
probably closer to our 1.X branch (the trunk is still unreleased):
http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.X/
I'm using the version 1.2.
The exception is "java.lang.NullPointerException", thus I suspect something
is wrong in the preceding Assign. I've learnt that this kind of step is a
little bit sensible.
Yeah I'm a bit surprised this isn't caught before. From the line numbers (if
they match) it seems the service hasn't been deployed in the IL. It's
probably that you're missing an <invoke partnerLink="..."> block in your
deployment descriptor.
Thank you very much for your help.
It works!
I've effectively forgotten the last <invoke> in deploy.xml.
Now I will make my PHP scripts more generic and play with them and with
more complex BPEL scripts.
Regards,
Ph.
--
Matthieu
While ODE should call the PHP WS, nothing appears in the access.log of
http. Thus the error occurs before the invocation.
Here's the log:
---------------------------------------------------------------------------------------------------------
DEBUG - GeronimoLog.debug(66) | >> handleWorkEvent(jobData={final=true,
mexid=hqejbhcnphr3k60kw2ielr, pid={
http://sample.bpel.org/bpel/sample}ValidationProcess-76<http://sample.bpel.org/bpel/sample%7DValidationProcess-76>,
retry=3, type=INVOKE_INTERNAL})
DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid
hqejbhcnphr3k60kw2ielr
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = hqejbhcnphr3k60kw2ieln
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = hqejbhcnphr3k60kw2ieln
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.partnerRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 26.callback: MSG RCVD
keys=[{CorrelationKey setId=-1, values=[hqejbhcnphr3k60kw2ieln]}]
mySessionId=hqejbhcnphr3k60kw2ieln partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 26.callback: ckey {CorrelationKey
setId=-1, values=[hqejbhcnphr3k60kw2ieln]} route is to
[EMAIL PROTECTED]
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 26.callback: ROUTING to instance
10962
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for instance
10962. INDEXED STATE={{OScope '__PROCESS_SCOPE:ValidationProcess'
id=3}::0=[ACTIVE(...)],
OPickReceive#42-ReceptionChoix::13=[ACTIVITYGUARD(...)],
OSequence#27-Notification::2=[SEQUENCE(self=(OSequence#27-Notification,TerminationChannel#3,ParentScopeChannel#5),
[EMAIL PROTECTED],
remaining=[OPickReceive#42-ReceptionChoix, {OAssign : LectureReponse,
joinCondition=null}, {OScope 'CompteRendu' id=55}])],
OPickReceive#42-ReceptionChoix::14=[PICK(...)], {OScope
'__PROCESS_SCOPE:ValidationProcess' id=3}::0=[SCOPE(...)],
OSequence#27-Notification::1=[ACTIVITYGUARD(...)]}
DEBUG - GeronimoLog.debug(66) | Resolving endpoint reference <?xml
version="1.0" encoding="UTF-8"?>
<EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><session
xmlns="http://www.intalio.com/type/session
">48bd271f1a2bb</session><Address>
http://arrigo-dev/Notification/onResult.php</Address></EndpointReference>
DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER:
partnerLink={PartnerLinkInstance
partnerLinkDecl=OPartnerLink#25,scopeInstanceId=11972}, op=onResult
channel=null)
DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP):
sessionId=hqejbhcnphr3k60kw2ielm partnerSessionId=48bd271f1a2bb
DEBUG - GeronimoLog.debug(66) | Invoking a partner operation: onResult
ERROR - GeronimoLog.error(108) | Method "run" in class
"org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.
java.lang.NullPointerException
at
org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:51)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:775)
----------------------------------------------------------------------------------
Here's my BPEL process:
<?xml version="1.0" encoding="UTF-8"?>
<bpws:process exitOnStandardFault="yes" name="ValidationProcess"
suppressJoinFailure="no"
targetNamespace="http://sample.bpel.org/bpel/sample"
xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns="http://www.example.org/client/"
xmlns:ns0="http://bpel.lmcu.fr/xsd/Validation"
xmlns:ns1="http://bpel.lmcu.fr/Notification/"
xmlns:ns2="http://bpel.lmcu.fr/tests/Validation" xmlns:tns="
http://sample.bpel.org/bpel/sample">
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="ValidationProcess.wsdl" namespace="
http://sample.bpel.org/bpel/sample"/>
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="Notification.wsdl" namespace="
http://bpel.lmcu.fr/Notification/"/>
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="client.wsdl" namespace="http://www.example.org/client/"/>
<bpws:import importType="http://www.w3.org/2001/XMLSchema"
location="Notification.xsd" namespace="
http://bpel.lmcu.fr/xsd/Validation/request"/>
<bpws:partnerLinks>
<bpws:partnerLink initializePartnerRole="no"
myRole="ValidationProcessProvider" name="client"
partnerLinkType="tns:ValidationProcessPLT"
partnerRole="ValidationProcessRequester"/>
<bpws:partnerLink initializePartnerRole="yes"
myRole="NotifierRole" name="Notification"
partnerLinkType="tns:NotificationPLT"
partnerRole="NotifiedRole"/>
</bpws:partnerLinks>
<bpws:variables>
<bpws:variable messageType="tns:ValidationProcessRequestMessage"
name="input"/>
<bpws:variable messageType="ns:onResultRequest" name="output"/>
<bpws:variable messageType="ns1:transmitRequest" name="Message"/>
<bpws:variable messageType="ns1:transmitResponse" name="Response1"/>
<bpws:variable messageType="ns1:callbackRequest" name="choice"/>
</bpws:variables>
<bpws:correlationSets>
<bpws:correlationSet name="CorrelationSet"/>
</bpws:correlationSets>
<bpws:sequence name="Notification">
<bpws:receive createInstance="yes" name="DemandeNotification"
operation="initiate" partnerLink="client"
portType="tns:ValidationProcess" variable="input"/>
<bpws:assign name="Initialisations" validate="no">
<bpws:copy keepSrcElementName="no">
<bpws:from part="payload" variable="input"/>
<bpws:to part="requete" variable="Message"/>
</bpws:copy>
</bpws:assign>
<bpws:invoke inputVariable="Message" name="EnvoiMessage"
operation="transmit" outputVariable="Response1"
partnerLink="Notification" portType="ns1:NotifiedPT"/>
<bpws:receive name="ReceptionChoix" operation="callback"
partnerLink="Notification" portType="ns1:NotifierPT"
variable="choice"/>
<bpws:assign name="LectureReponse" validate="no">
<bpws:copy>
<bpws:from>
<bpws:literal>
<rep:onResultRequest xmlns:rep="
http://www.example.org/client/">
<rep:result/>
</rep:onResultRequest>
</bpws:literal>
</bpws:from>
<bpws:to part="parameters" variable="output"/>
</bpws:copy>
<bpws:copy keepSrcElementName="no">
<bpws:from part="response" variable="choice">
<bpws:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/response]]></bpws:query>
</bpws:from>
<bpws:to part="parameters" variable="output">
<bpws:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[/ns:result]]></bpws:query>
</bpws:to>
</bpws:copy>
</bpws:assign>
<bpws:invoke inputVariable="output" name="CompteRendu"
operation="onResult" partnerLink="client" portType="ns:client"/>
</bpws:sequence>
</bpws:process>
---------------------------------------------------------------------------------------------
the client.wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.example.org/client/" xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" name="client" targetNamespace="
http://www.example.org/client/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.example.org/client/">
<xsd:element name="onResultRequest"
type="tns:onResultRequestType"></xsd:element>
<xsd:complexType name="onResultRequestType">
<xsd:sequence>
<xsd:element name="result" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="onResultRequest">
<wsdl:part element="tns:onResultRequest" name="parameters"/>
</wsdl:message>
<wsdl:portType name="client">
<wsdl:operation name="onResult">
<wsdl:input message="tns:onResultRequest"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="clientSOAP" type="tns:client">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="onResult">
<soap:operation
soapAction="http://www.example.org/client/onResult" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="clientWS">
<wsdl:port binding="tns:clientSOAP" name="clientPort">
<soap:address location="
http://arrigo-dev/Notification/onResult.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
-----------------------------------------------------------------------------------------
Thanks in advance for your responses,
regards,
Ph.
--