Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.3.2, 1.3.3
-
None
-
None
-
n/a
Description
My BPEL flows (I think, although its possible this hasn't been function as expected) used to work before changeset [765432] (on the ODE 1_XXX branch), they no longer do (and continue to work when I rever that changeset out.
I think its something to do with the 'location' property now being set on the variable reference where it previously wasn't, but I'm very very out of depth. I've attached what I think is the relevant snipped of BPEL that I'm using for doing my invoke:
<!-- in the bpel:variables section -->
<bpel:variable name="DynamicEndpointRef" element="wsa:EndpointReference" />
<!--- Trying to invoke a service call -->
<bpel:assign name="proxyPreparation">
<bpel:copy>
<bpel:from>
<bpel:literal>
<wsa:EndpointReference xmlns:swsdl="uri:swsdl">
<wsa:Address />
<wsa:ServiceName PortName="PPSSoap">swsdl:PPS</wsa:ServiceName>
</wsa:EndpointReference>
</bpel:literal>
</bpel:from>
<bpel:to variable="DynamicEndpointRef" />
</bpel:copy>
<bpel:copy>
<bpel:from>bpel:doXslTransform("GetNextAddress.xsl",$DynamicEndpointRef/wsa:Address)</bpel:from>
<bpel:to variable="ProxyAddress" />
</bpel:copy>
<bpel:copy>
<bpel:from variable="ProxyAddress" />
<bpel:to variable="DynamicEndpointRef">
<bpel:query>wsa:Address</bpel:query>
</bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from variable="DynamicEndpointRef" />
<bpel:to partnerLink="PPS" />
</bpel:copy>
<bpel:copy>
<bpel:from>
<bpel:literal>
<swsdl:PPI>
<swsdl:processId>9f538fdb-ca36-4d5d-a056-d6bf92632f75</swsdl:processId>
</swsdl:PPI>
</bpel:literal>
</bpel:from>
<bpel:to variable="ppIn" part="parameters" />
</bpel:copy>
</bpel:assign>
<bpel:invoke name="InvokePPS" partnerLink="PPS" portType="swsdl:PPSSoap" operation="PPI" inputVariable="ppIn" outputVariable="ppOut" />
And when the flow executes I see an error along the lines of :
ERROR - GeronimoLog.error(104) | Couldn't find endpoint for partner EPR <?xml version="1.0" encoding="UTF-8"?>
<service-ref xmlns="http://docs.oasis-open.org/wsbpel/2.0/serviceref">
<Address xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">http://server/myaddress.asmx?wsdl</Address>
<wsa:ServiceName xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" PortName="PPSSoap">swsdl:PPS</wsa:ServiceName>
</service-ref>
I do not get this error, and the correct web service seems to get called when I revert the change.. any ideas, is my BPEL flawed, or has an issue been introduced?
Please find attached a fully deployed process, this will require you to mock a service that adheres to the wsdl in proxy.wsdl.
A request such as :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wor="http://www.myco.com/xml/sa/4.0/Workflow/"
xmlns:smf="http://www.myco.com/xml/sa/4.0/smf">
<soapenv:Header/>
<soapenv:Body>
<wor:ExecuteWorkflow>
<wor:userCredentials>
<smf:userId>03d27fc0-5ede-4cb8-89d7-6bf7510e16c6</smf:userId>
<smf:applicationName>NA</smf:applicationName>
</wor:userCredentials>
<wor:workItem version="54">
<smf:state>BECE5689-A575-4531-86B6-15176D827C08</smf:state>
</wor:workItem>
</wor:ExecuteWorkflow>
</soapenv:Body>
</soapenv:Envelope>
Will cause the error to occur on trunk head, but the error won't occur if you revert changeset [765432] I do believe its to dow with the dynamic addressing breaking the partnerlink stuff, but I'm not clever enough to pin it down