﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-桑桑小窝-文章分类-远程访问</title><link>http://www.blogjava.net/virtual-function/category/38953.html</link><description>光荣在于平淡，艰巨在于漫长</description><language>zh-cn</language><lastBuildDate>Fri, 10 Apr 2009 03:25:44 GMT</lastBuildDate><pubDate>Fri, 10 Apr 2009 03:25:44 GMT</pubDate><ttl>60</ttl><item><title>Hessian版本问题</title><link>http://www.blogjava.net/virtual-function/articles/264787.html</link><dc:creator>桑之兮(CS-LIN)</dc:creator><author>桑之兮(CS-LIN)</author><pubDate>Fri, 10 Apr 2009 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/virtual-function/articles/264787.html</guid><wfw:comment>http://www.blogjava.net/virtual-function/comments/264787.html</wfw:comment><comments>http://www.blogjava.net/virtual-function/articles/264787.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/virtual-function/comments/commentRss/264787.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/virtual-function/services/trackbacks/264787.html</trackback:ping><description><![CDATA[<blockquote dir="ltr" style="margin-right: 0px">
<p dir="ltr" style="margin-right: 0px"><span style="font-size: 14pt; font-family: 宋体">今天尝试了一下Hessian与Spring的结合，选取版本为：hessian3.2.1；spring2.5。出现了莫名的异常如下：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">com.caucho.hessian.io.HessianProtocolException:&nbsp;expected&nbsp;string&nbsp;at&nbsp;</span><span style="color: #000000">0x6d</span><span style="color: #000000"><br />
at&nbsp;com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:</span><span style="color: #000000">2714</span><span style="color: #000000">)<br />
at&nbsp;com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:</span><span style="color: #000000">2695</span><span style="color: #000000">)<br />
at&nbsp;com.caucho.hessian.io.Hessian2Input.readString(Hessian2Input.java:</span><span style="color: #000000">1322</span><span style="color: #000000">)<br />
at&nbsp;com.caucho.hessian.io.Hessian2Input.readMethod(Hessian2Input.java:</span><span style="color: #000000">267</span><span style="color: #000000">)<br />
at&nbsp;com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:</span><span style="color: #000000">138</span><span style="color: #000000">)<br />
at&nbsp;com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:</span><span style="color: #000000">110</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.remoting.caucho.Hessian2SkeletonInvoker.invoke(Hessian2SkeletonInvoker.java:</span><span style="color: #000000">94</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.remoting.caucho.HessianExporter.invoke(HessianExporter.java:</span><span style="color: #000000">142</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.remoting.caucho.HessianServiceExporter.handleRequest(HessianServiceExporter.java:</span><span style="color: #000000">70</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:</span><span style="color: #000000">49</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:</span><span style="color: #000000">875</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:</span><span style="color: #000000">807</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:</span><span style="color: #000000">571</span><span style="color: #000000">)<br />
at&nbsp;org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:</span><span style="color: #000000">511</span><span style="color: #000000">)<br />
at&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:</span><span style="color: #000000">637</span><span style="color: #000000">)<br />
at&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:</span><span style="color: #000000">717</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:</span><span style="color: #000000">290</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:</span><span style="color: #000000">206</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:</span><span style="color: #000000">233</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:</span><span style="color: #000000">191</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:</span><span style="color: #000000">128</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:</span><span style="color: #000000">102</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:</span><span style="color: #000000">109</span><span style="color: #000000">)<br />
at&nbsp;org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:</span><span style="color: #000000">286</span><span style="color: #000000">)<br />
at&nbsp;org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:</span><span style="color: #000000">845</span><span style="color: #000000">)<br />
at&nbsp;org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:</span><span style="color: #000000">583</span><span style="color: #000000">)<br />
at&nbsp;org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:</span><span style="color: #000000">447</span><span style="color: #000000">)<br />
at&nbsp;java.lang.Thread.run(Thread.java:</span><span style="color: #000000">619</span><span style="color: #000000">)<br />
</span></div>
<p dir="ltr" style="font-size: 14pt; margin-right: 0px; font-family: 楷体_GB2312"><span style="font-family: 宋体">在网上搜索了以后，发现是spring2.0.7之后对客户端请求协议的处理发生了变化导致的。引用：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000">It&nbsp;has&nbsp;been&nbsp;like&nbsp;that&nbsp;since&nbsp;Spring&nbsp;</span><span style="color: #000000">2.0</span><span style="color: #000000">.</span><span style="color: #000000">7</span><span style="color: #000000">.&nbsp;Means&nbsp;regardless&nbsp;in&nbsp;which&nbsp;protocol&nbsp;(hessian&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;or&nbsp;hessian&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">)&nbsp;that&nbsp;the&nbsp;client&nbsp;requests,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the&nbsp;Hessian2Input&nbsp;will&nbsp;always&nbsp;be&nbsp;used&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;the&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;is&nbsp;available&nbsp;in&nbsp;the&nbsp;classpath.&nbsp;It</span><span style="color: #000000">'</span><span style="color: #000000">s&nbsp;still&nbsp;quite&nbsp;abnormal&nbsp;to&nbsp;me<img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">Nevertheless,&nbsp;I&nbsp;found&nbsp;that&nbsp;the&nbsp;problem&nbsp;comes&nbsp;from&nbsp;hessian&nbsp;</span><span style="color: #000000">3.2</span><span style="color: #000000">.</span><span style="color: #000000">1</span><span style="color: #000000">.&nbsp;In&nbsp;that&nbsp;version,&nbsp;Hessian2Input&nbsp;does&nbsp;not&nbsp;understand&nbsp;hessian&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;input</span><span style="color: #000000">!</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So,&nbsp;my&nbsp;solution&nbsp;is&nbsp;to&nbsp;use&nbsp;the&nbsp;earlier&nbsp;version:&nbsp;</span><span style="color: #000000">3.1</span><span style="color: #000000">.</span><span style="color: #000000">6</span><span style="color: #000000">.&nbsp;It&nbsp;works</span><span style="color: #000000">!</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">I&nbsp;noticed&nbsp;that&nbsp;hessian&nbsp;</span><span style="color: #000000">3.2</span><span style="color: #000000">.</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;(and&nbsp;</span><span style="color: #000000">3.2</span><span style="color: #000000">.</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;was&nbsp;delivered&nbsp;without&nbsp;the&nbsp;hessian</span><span style="color: #000000">-</span><span style="color: #000000">test.jar.&nbsp;It&nbsp;probably&nbsp;was&nbsp;not&nbsp;tested,&nbsp;that&nbsp;may&nbsp;cause&nbsp;the&nbsp;problem&nbsp;:</span><span style="color: #000000">-</span><span style="color: #000000">)&nbsp;<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<p dir="ltr" style="margin-right: 0px; font-family: 宋体"><span style="font-size: 14pt">所以，更换为hessian3.1.6就解决了</span>。</p>
</blockquote>
<img src ="http://www.blogjava.net/virtual-function/aggbug/264787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/virtual-function/" target="_blank">桑之兮(CS-LIN)</a> 2009-04-10 11:13 <a href="http://www.blogjava.net/virtual-function/articles/264787.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>