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-projects-issues opened this issue Feb 10, 2009 · 4 comments
Closed

Support Hessian 3.2.1 [SPR-5469] #10142

spring-projects-issues opened this issue Feb 10, 2009 · 4 comments
Assignees
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues 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:

2 votes, 4 watchers

@spring-projects-issues
Copy link
Collaborator Author

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-projects-issues
Copy link
Collaborator Author

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-projects-issues
Copy link
Collaborator Author

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-projects-issues
Copy link
Collaborator Author

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
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

2 participants