Hi Eric,

I will work on these issues and let you know once we resolved all these issues. Is it possible for you to send us some sample hessian services for each and every scenario where ESB fails to respond to client properly... That will help us a lot to reproduce the issue and save big amount of time.

Please see the inline comments as well..

Hubert, Eric wrote:
Hello Ruwan,

today I continued my tests of the hessian protocol support of the esb and 
encountered some problems.

1) Our client calls a service method with the following signature:
public List findAlbumsByArtistId(long artistId, long countryId) throws 
CatalogException;

The call fails with the following exception:
[com.caucho.hessian.client.HessianRuntimeException], MESSAGE 
[com.caucho.hessian.io.HessianProtocolException: expected end of map ('z') at 
'?']

I attached the message trace of the ESB with the relevant part (please see 
trace_1.log in the archive). If I understand the exception correctly the 
Hessian client doesn't understand the response send back by the esb because it 
doesn't find the end marker for the list.
Well, what is the approximate size of this response message? I doubt this is a large message, in which case we have to check Hessian on large messages.
2)
Our client calls a service method with the following signature:
public PlaylistByJambaWithSongs findPlaylistByJamba(long playlistId, long 
countryId);
The call fails with the following exception:
[com.caucho.hessian.client.HessianRuntimeException], MESSAGE 
[com.caucho.hessian.io.HessianProtocolException: unknown code:?]

The relevant part of the stacktrace is:
[...]
Caused by: com.caucho.hessian.io.HessianProtocolException: unknown code:�
        at com.caucho.hessian.io.HessianInput.error(HessianInput.java:1642)
        at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:1143)
        at 
com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:187)
[...]

I attached the message trace of the ESB with the relevant part (please see trace_2.log in the archive).
The character read in HessianInput is non of the valid characters. Maybe some 
encoding issue?

This error occurs on many of our methods, which work if used directly.
I will have a look at this.

3) If we call a method which triggers an HessianException on the server side (in this case this is due to a bug in Hessian with overloaded messages, using Hessian directly the client immediately receives the exception) the ESB blocks for a while, then the client receives the following error:
[Unexpected invocation exception: HTTP/1.1 500 Internal Server Error]

After this no method can be called without receiving the following error:
Unexpected invocation exception: Read timed out
Cause: java.net.SocketTimeoutException: Read timed out

Detail-Line from message trace:
TRACE Message : Unexpected response received : First Element must contain the 
local name, Envelope , but found html

I attached the message trace of the ESB with the relevant part (please see 
trace_3.log in the archive).

This also applies to SOAP-calls. The whole esb is blocked. I could send you a 
thread dump if this would be of help.
I think the thread dump would be helpful.

Thanks,
Ruwan

_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to