Saturday, October 18, 2008

Dear Readers, one more error and the potential fix:
This error has also been posted on the forum:

I have the following in place:
1) JMS Consumer BPEL Process : It Consumes messages from a JMS Queue.
2) Another BPEL Process : It does transormation and calls an ESB service.
3) An ESB Service: This is my router.

I am facing the following problem with my SOA:

exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: company: company *

I have chain of calls wherein Service1 calls Service2 and Service2 in turn calls Service3.
However, When BPEL Process 2 calls ESB Service 3, I get the above mentioned exception:

The following is the few first and last lines in the exception stack:



at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$

Cause and Fix:
The problem arose because the WSDL for the Routing Service had a service tag which was pointing to the dummy implementation endpoint. It was of a form like : http://company/blabla/
The company you see in the exception summary, was coming from this Service tag. The URL being a dummy one is not found and the message send failed.
When you register a routing service, a new WSDL gets created which imports the abstract WSDL. But here the service and binding tags (somehow they were added and that was the issue) in the abstract WSDL was being considered and hence the error.

Removing the service and binding tags from this WSDL was a fix.