Howto debug a web service proxy workflow?

Howto debug a web service proxy workflow?

Hi!

We're using SOAE as a proxy to call external web services. The connection between SOAE and the external part is encrypted using SSL. And that part seem to be working fine. We get succesfull test when testing the invocation agent through the admin console.

We are having some problems decoding the error messages SOAE throw at us. We can see the request we're sending in, in the logs. But, nothing later (except for a lot of debug messages).

Is it possible to see what (if anything) SOAE sends to the backend server? Is it possible to see the response (if anything) from the backend server?

With different configurations, this is one error message we've seen:

Exception occurred during processing of invocation response: Couldn't report the fault through the inbound partnerLink: Uncaught BPEL fault http://www.intel.com/soae/bpel/bpel20-2007a/:replyFailure (Failed to post message to input server. Exception: WProcessorCallbacksImpl: Failed to prepare outbound buffers HTTP style headers can only be added to the metadata elements and . Neither of these elements is present in the metadata, so the requested headers can't be merged into the metadata. The metadata can't be updated. to process reply for
...
...
s:sequence[1]/bpws:reply[1], name=Reply] Either a reply activity has already been executed, or there is no reply activity in the workflow for this inbound partnerLink.
...
...
Back end failure

As the connection is encrypted, and we don't have direct access to the backend server, it is hard to debug. We would therefore really appreciate if anyone knows if it's possible to see what SOAE sends to the server, and hopefully also what the server replys with.

Btw, the workflow does test successfully when testing with dummy requests and responses in the designer...

With some changes in the workflow, I get this error-message in stead:
<?xml version="1.0" encoding="utf-8"?>
X:invocationAgentFailureUncaught BPEL fault http://www.intel.com/soae/bpel/bpel20-2007a/:invocationAgentFailure (Invocation agent failed: (Status = MSG_SERVICE_FAILURE)) executing instruction #12: INVOKE_RESPONSE [ ima = Invoke_IMA_Key (id=3), onlyKey=false, throwOnFault=true, partsCount: 1][file=../app/ExternalPartner.bpel, line=122, path=/bpws:process[1]/bpws:sequence[1]/bpws:extensionActivity[2]/soae-ab:InvokeBuilder[1]/bpws:scope[1]/bpws:sequence[1]/bpws:invoke[1], name=Invoke]

Best Regards,
Lars

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Lars,

Thanks for your post.

I would like to check with youif you enabled the TRACE logs on SOA Expressway. This should allow you to see the actual request/response messages exchanged with the web server.

Also, just to help me understand this better, what version of SOAE are you using

Thanks,
Ritu

Hi!
Thanks for your reply. We have enabled TRACE on the logs, and we're using SOAE 2.5. In this case, we do not see any response from the server in the logs.

I have debugged some more, and found that the SSL connection is being renegotiated by peer, and thus - shut down by intel SOAE. Even though it passes the test from the admin console...

I'm currently searching the web and the documentation for finding out if there is somewhere to configure Intel to accept a SSL renegotiation. See the end of this post for the error message found in the console.

Do you know if there is such a setting?

Details

[id: 0x3eacb506,
/xxx.xxx.xxx.xxx:50847 => /xxx.xxx.xxx.xxx:443] EXCEPTION:
javax.net.ssl.SSLException: renegotiation attempted by peer; closing the
connection javax.net.ssl.SSLException: renegotiation attempted by peer;
closing the connection at
org.jboss.netty.handler.ssl.SslHandler.handleRenegotiation(SslHandler.java:967)
~[na:na] at
org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:877)
~[na:na] at
org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:604)
~[na:na] at
org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:282)
~[na:na] at
org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216)
~[na:na] at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
~[na:na] at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
~[na:na] at
org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
~[na:na] at
org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:281)
~[na:na] at
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:201)
~[na:na] at
org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
~[na:na] at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_21] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_21] at java.lang.Thread.run(Thread.java:619) [na:1.6.0_21]

Best regards,
Lars.

Quoting larsd...
Is it possible to see what (if anything) SOAE sends to the backend server?

[SergeyK] Yes.

Is it possible to see the response (if anything) from the backend server?

[SergeyK] Yes.

...

Best Regards,
Lars

Hi Lars,

I have a couple of questions:

- Would you be able to provide some technical details on how your Web Service is organized?

- How a Web Service Proxy looks like ( as a DLL, as an EXE,as a .NET assembly, etc )?

- What IDE \ Development Tools are you using to build a Web Service Proxy?

Best regards,
Sergey

Leave a Comment

Please sign in to add a comment. Not a member? Join today