Mittwoch, Februar 27, 2008

Oracle BPEL PM calling out to stateful Axis2 service

You have to look into some things more deep, than you would like to do. You are using stateful Axis2 web services? With scope="soapsession"? Then Axis2 tries to hold session state with putting a unique ID (ServiceGroupId) into the WS-Addressing header. On client side, you switch to stateful=true and everything works fine. If you have an Axis2 client… If you try to call that stateful Axis2 service from within Oracle BPEL PM, everything works fine, too. The only thing you loose is the ServiceGroupId, which has to be used in the following Axis2 service call. So you loose your state.

Why is that: generally, Oracle BPEL PM handles WS-Addressing transparently. Problem here: Oracle BPEL PM 101.1.3.3 implements WS-Addressing 2003, Axis2 has an implementation of 2005’er spec.

Solution: Within BPEL process you can manually copy the correct WSA headers using the bpelx:inputHeaderVariable and bpelx:outputHeaderVariable commands.

See some details here: http://weblogs.asp.net/gsusx/archive/2006/06/01/WS_2D00_Addressing-interoperability-between-Oracle-BPEL-Process-Manager-and-Microsoft-Windows-Communication-Foundation.aspx

 

Keine Kommentare: