hessian4.0.7结合spring2.5.6的bug
由于项目要用到hessian,故今天开始了解下hessian,于是去hessian官网下载hessianforjava版的最新版本hessian-4.0.7.jar,纯hessian的调用非常简单,想测试下spring和hessian的结合使用,用到spring2.5.6。
结果报错如下:
2011-2-24 11:18:31 org.apache.catalina.startup.Catalina start信息: Server startup in 2656 ms2011-2-24 11:18:37 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet remote threw exceptioncom.caucho.hessian.io.HessianProtocolException: expected string at 0x6dat com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2882)at com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:2830)at com.caucho.hessian.io.Hessian2Input.readString(Hessian2Input.java:1362)at com.caucho.hessian.io.Hessian2Input.readMethod(Hessian2Input.java:272)at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:249)at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:221)at org.springframework.remoting.caucho.Hessian2SkeletonInvoker.invoke(Hessian2SkeletonInvoker.java:94)at org.springframework.remoting.caucho.HessianExporter.invoke(HessianExporter.java:142)at org.springframework.remoting.caucho.HessianServiceExporter.handleRequest(HessianServiceExporter.java:70)at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)at java.lang.Thread.run(Unknown Source)
?
经查是发现是spring2.0.7之后对客户端请求协议的处理发生了变化导致的,换成hessian-3.1.6.jar,问题解决。spring和hessian版本之间的测试待以后有时间做,届时列出测试结果。
1 楼 kristy_yy 2011-11-02 我的jar包是从别人的项目那靠过来的 他的用着没问题呀