hessian异常

本文记录了一次使用Hessian进行远程调用时遇到的各种异常情况,包括ClassNotFoundException及HessianProtocolException等,并最终发现是由于服务器端和客户端的hessian.jar版本不一致导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源自:http://fancyboy2050.iteye.com/blog/716967

试了下hessian的远程调用,网上例子很多,随便down了几个下来测试,结果都有异常: 

Java代码   收藏代码
  1. 2010-7-20 13:42:34 com.caucho.hessian.io.SerializerFactory getDeserializer  
  2. 警告: Hessian/Burlap: 'work' is an unknown class in sun.misc.Launcher$AppClassLoader@19821f:  
  3. java.lang.ClassNotFoundException: work  
  4. java.lang.reflect.UndeclaredThrowableException  
  5.     at $Proxy0.getMap(Unknown Source)  
  6.     at hessian.TestHessian.main(TestHessian.java:21)  
  7. Caused by: java.io.EOFException: readObject: unexpected end of file  
  8.     at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2054)  
  9.     at com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:93)  
  10.     at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1995)  
  11.     at com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:93)  
  12.     at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1995)  
  13.     at com.caucho.hessian.io.MapDeserializer.readMap(MapDeserializer.java:114)  
  14.     at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1592)  
  15.     at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:253)  
  16.     ... 2 more  
  17. java.lang.reflect.UndeclaredThrowableException  


Java代码   收藏代码
  1. Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianProtocolException: expected integer at 0x53 java.lang.String (com.luochao.hessian.dto.NoteBook)  
  2.     at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:268)  
  3.     at $Proxy0.getNoteBook(Unknown Source)  
  4.     at com.luochao.hessian.test.TestHessian2.main(TestHessian2.java:15)  
  5. Caused by: com.caucho.hessian.io.HessianProtocolException: expected integer at 0x53 java.lang.String (com.luochao.hessian.dto.NoteBook)  
  6.     at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2765)  
  7.     at com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:2736)  
  8.     at com.caucho.hessian.io.Hessian2Input.readInt(Hessian2Input.java:796)  
  9.     at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1621)  
  10.     at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:253)  
  11.     ... 2 more  


只有返回String能正常,遇到Map,List,JavaBean等都出现异常,网上也没找到相关异常描述; 
最后解决,resin3.1服务器自带了hessian.jar的包,和我使用的不一致导致了异常。 
大家出现异常时也可以查看下hessian包是否有服务器端和客户端不一致,或者是服务器自带了不同版本的hessian.jar包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值