Grails Hessian问题

时间:2014-06-20 15:01:08

标签: grails hessian

我们正在将生产环境转移到客户的数据中心。目前,为了解释这个场景,我们有一个Apache负载均衡器,它负责平衡对托管2个grails应用程序的2个Apache Tomcat应用程序服务器的请求。我很感激任何帮助!

总结一下,我们的设置是: - 充当负载均衡器的Apache HTTP服务器

  • 2个Tomcat服务器(节点A和节点B)

  • 我们在每个Tomcat服务器上托管了两个Java / Grails应用程序。 在我们当前的环境中,我们通过负载均衡器将来自我们的grails应用程序的hessian请求发送到另一个grails应用程序。这非常有效。在我们迁移到的环境中,这是失败的。

    我们已经能够验证所有防火墙和安全包都已关闭。每次此粗麻布调用失败时,我们也能够验证负载均衡器访问日志中是否存在错误(/ var / log / httpd / access_log):

  

10.30.95.51 - - [19 / Jun / 2014:11:55:13 -0400]“POST / Application / hessian / RemoteTicketService HTTP / 1.1”500 8067“ - ”   的 “Java / 1.6.0_30”

我继续执行tcpdump并且我能够确定为Hessian返回了Grails应用程序错误 - 有没有人有任何想法?:

  

L6DàL6< 83>¢HTTP / 1.1 500内部服务器错误^ M日期:2014年6月20日,星期五   14:40:08 GMT ^ M服务器:Apache / 2.2.15(红帽)^ M连接:关闭^ M   Transfer-Encoding:chunked ^ M Content-Type:text / html; charset = UTF-8 ^ M.   ^ M 1f83 ^ M.             Grails运行时异常                                        。信息 {                                   边框:1px纯黑色;                                   填充:10px;                                   背景色:#E9E9E9;                   保证金:30px;                           }               .header {                   保证金:30px;               }                           .stack {                                   边框:1px纯黑色;                                   填充:5px;                                   溢出:汽车;                                   身高:300px;                           }                           .snippet {                                   填充:5px;                                   背景颜色:白色;                                   边框:1px纯黑色;                                   保证金:3px的;                                   FONT-FAMILY:宋体;                           }                

     

      看起来你遇到了一个错误,抱歉                              消息: -1的粗麻布输入中预期的'H'/'C'(Hessian 2.0)或'c'(Hessian 1.0)                   造成:Hessian骨架调用失败;嵌套异常是java.io.IOException:预期   'H'/'C'(Hessian 2.0)或'c'(Hessian 1.0)在-1的粗麻布输入中                   等级:未知
                  在线: [-1]
                  代码段:

1 个答案:

答案 0 :(得分:1)

这对Apache / 2.2.15上的mod_jk模块1.2.39来说是一个问题。我们将mod_jk模块换成版本1.2.37,一切正常。使用tcpdump和一个基本的hessian java项目,我们能够通过设置" chunked post"来确认问题已得到解决。在我们的粗麻布工厂做错了。遗憾的是,我们无法在项目库/依赖项中执行此代码更改,但我们发现在mod_jk 1.2.39中已破坏了分块HTTP请求的转发。 mod_jk 1.2.40修复了这个错误,它也没有在1.2.37中影响我们的环境。

http://tomcat.apache.org/connectors-doc/miscellaneous/changelog.html