Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Hessian 3.2.1 [SPR-5469] #10142

Closed
spring-issuemaster opened this issue Feb 10, 2009 · 4 comments
Closed

Support Hessian 3.2.1 [SPR-5469] #10142

spring-issuemaster opened this issue Feb 10, 2009 · 4 comments
Assignees
Milestone

Comments

@spring-issuemaster
Copy link
Collaborator

@spring-issuemaster spring-issuemaster commented Feb 10, 2009

Ho Tri Bao opened SPR-5469 and commented

Currently, regardless in which protocol (hessian 1 or hessian 2) that the client requests, the Hessian2Input will always be used if the class is available in the classpath. It works in hessian 3.1.2 but no longer work s with hessian 3.2.1

I got the answer from hessian mailinglist that Hessian2Input does not support hessian 1 protocol. Adaptations are needed in Spring in order to support the new version of hessian.

Please refer to the post in forum.


Affects: 2.5.6

Reference URL: http://forum.springframework.org/showthread.php?t=66876

Attachments:

Issue Links:

  • #10710 Support Hessian 4.0.1 with Spring 3.0

2 votes, 4 watchers

@spring-issuemaster
Copy link
Collaborator Author

@spring-issuemaster spring-issuemaster commented Feb 25, 2009

Peter Dettman commented

I have attached a patch that updates the Hessian2SkeletonInvoker to handle Hessian 2.0 protocol (as of caucho's hessian 3.2.1 anyway). The code is based on the com.caucho.hessian.server.HessianServlet implementation.

It is backward compatible with Hessian 1.0 protocol clients, with a caveat: you can run into trouble if your client is set to accept a Hessian 2.0 reply, but is not uptodate with the latest Hessian 2.0 changes.

The build dependencies would need to be updated to the latest version of hessian jar also. Unfortunately, 3.2.1 seems to have a couple of regressions; I would advise waiting for the next release.

@spring-issuemaster
Copy link
Collaborator Author

@spring-issuemaster spring-issuemaster commented Mar 26, 2009

Juergen Hoeller commented

As of Spring 3.0 M3, HessianServiceExporter supports the Hessian 2.0 protocol analogous to the HessianServlet code in Hessian 3.2.1. This has been implemented in a form that should preserve compatibility with Hessian 3.1.3 and above.

Juergen

@spring-issuemaster
Copy link
Collaborator Author

@spring-issuemaster spring-issuemaster commented May 25, 2009

Sakib Mehasanewala commented

Hello,

Are you sure this is working. I upgraded from Spring 3.0.0M2 to 3.0.0M3 and hessian from 3.2.0 to 3.2.1 and all my Hessian 2 calls started failing.

My Clients are configured like ...

<bean id="userService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
	<property name="serviceUrl"
		value="${cbs2BaseUrl}/remoting/hessian/UserService" />
	<property name="serviceInterface" value="com.test.services.cbs2.service.UserService" />
	<property name="hessian2" value="true"/>
</bean>

The errors I see on the server side are:

java.io.IOException: Expected 'H' (Hessian 2.0) or 'c' (Hessian 1.0) in hessian input at 172
at org.springframework.remoting.caucho.HessianExporter.doInvoke(HessianExporter.java:165) [org.springframework.web-3.0.0.M3.jar:3.0.0.M3]
at org.springframework.remoting.caucho.HessianExporter.invoke(HessianExporter.java:119) [org.springframework.web-3.0.0.M3.jar:3.0.0.M3]
at org.springframework.remoting.caucho.HessianServiceExporter.handleRequest(HessianServiceExporter.java:66) [org.springframework.web-3.0.0.M3.jar:3.0.0.M3]
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49) [org.springframework.web.servlet-3.0.0.M3.jar:3.0.0.M3]

@spring-issuemaster
Copy link
Collaborator Author

@spring-issuemaster spring-issuemaster commented Aug 25, 2009

Juergen Hoeller commented

Please try again with 3.0 M4; this should work for all Hessian invocation types now.

Juergen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.