试了下hessian的远程调用,网上例子很多,随便down了几个下来测试,结果都有异常:
2010-7-20 13:42:34 com.caucho.hessian.io.SerializerFactory getDeserializer
警告: Hessian/Burlap: 'work' is an unknown class in sun.misc.Launcher$AppClassLoader@19821f:
java.lang.ClassNotFoundException: work
java.lang.reflect.UndeclaredThrowableException
at $Proxy0.getMap(Unknown Source)
at hessian.TestHessian.main(TestHessian.java:21)
Caused by: java.io.EOFException: readObject: unexpected end of file
at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2054)
at com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:93)
at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1995)
at com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:93)
at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1995)
at com.caucho.hessian.io.MapDeserializer.readMap(MapDeserializer.java:114)
at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1592)
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:253)
... 2 more
java.lang.reflect.UndeclaredThrowableException
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)
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:268)
at $Proxy0.getNoteBook(Unknown Source)
at com.luochao.hessian.test.TestHessian2.main(TestHessian2.java:15)
Caused by: com.caucho.hessian.io.HessianProtocolException: expected integer at 0x53 java.lang.String (com.luochao.hessian.dto.NoteBook)
at com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2765)
at com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:2736)
at com.caucho.hessian.io.Hessian2Input.readInt(Hessian2Input.java:796)
at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1621)
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:253)
... 2 more
只有返回String能正常,遇到Map,List,JavaBean等都出现异常,网上也没找到相关异常描述;
最后解决,resin3.1服务器自带了hessian.jar的包,和我使用的不一致导致了异常。
大家出现异常时也可以查看下hessian包是否有服务器端和客户端不一致,或者是服务器自带了不同版本的hessian.jar包
分享到:
相关推荐
当服务端出现异常时,Hessian会将异常信息序列化并返回给客户端,客户端可以根据这些信息进行错误处理。 7. **版本兼容性**: 随着服务的升级和扩展,需要考虑版本兼容性问题。Hessian提供了一定的兼容性策略,但...
此外,对于序列化异常,可能需要检查对象是否可序列化,或者使用Hessian的自定义序列化类。 总的来说,Spring与Hessian的集成提供了便捷的远程调用方案,但需要注意性能优化、安全性以及故障排查。通过深入学习和...
Hessian支持多种类型的数据,包括基本类型、对象、数组、集合和Map,以及Java的日期、异常和自定义对象。它的协议设计允许动态添加新方法,这意味着服务可以扩展而不影响现有的客户端。此外,Hessian还支持版本控制...
5. **异常处理与事务管理**:整合Hessian与Spring后,我们可以利用Spring的异常处理机制和事务管理功能。例如,当远程调用抛出异常时,Spring可以捕获并进行统一处理;同时,我们可以在方法上添加@Transactional注解...
Hessian是一种高效的二进制序列化协议,常用于网络通信,特别是远程方法调用(RPC)服务。在VC(Visual C++)环境下实现Hessian客户端,可以让你的应用程序与使用Hessian服务端进行高效的数据交换。本文将详细介绍...
同时,客户端需要处理网络异常、解析异常等错误情况,确保应用的健壮性。 7. **性能优化**:在实际应用中,可以通过缓存策略、批量请求等方式进一步优化Hessian通信的性能。例如,可以缓存最近使用的服务对象,减少...
3. **异常处理**:在结合使用时,如果Hessian抛出的异常没有被Spring正确捕获和处理,可能会导致服务崩溃或者错误信息传递不全,使得调试变得困难。 4. **配置问题**:Spring配置文件中关于Hessian的配置可能存在...
注意,由于网络传输的限制,可能存在异常处理,如`UserException`。 6. **安全与优化**: - 虽然Hessian提供了便利,但需要注意安全性问题,如防止未授权的远程调用,以及保护敏感数据。此外,可以考虑使用HTTPS...
Hessian是一种二进制协议,它允许Java和.NET应用程序之间进行高效的远程方法调用(RMI)。...Hessian提供了序列化和反序列化...在实际开发中,你可能需要根据具体需求进行调整和优化,例如添加异常处理、性能监控等功能。
同时,理解Hessian如何处理异常、安全性和版本兼容性也是至关重要的。 工具方面,Hessian提供了许多辅助工具,例如编译器,可以将Java接口转换为Hessian服务,这样客户端就可以通过HTTP调用这些服务,而无需了解...
7. **错误处理**:在使用Hessian进行远程调用时,可能会遇到网络中断、服务端异常等问题。开发者需要合理处理这些异常,提供友好的错误提示,并设计合理的重试策略。 8. **版本兼容性**:随着项目的发展,服务端...
4. 异常处理:Hessian能将运行时异常直接封装并传递给客户端,简化了错误处理。 5. 简单集成:Hessian可以轻松地与现有的Web服务框架集成,如Spring,无需额外的配置和代码。 四、Hessian的应用 在实际项目中,...
- 在客户端和服务端,都需要处理可能出现的异常,如网络中断、超时或服务器端返回的错误。 总的来说,Hessian案列代码展示了如何使用Hessian进行远程方法调用。通过对服务端的设置、客户端的调用以及处理序列化和...
在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Hessian则是一...在实际项目中,还需要考虑安全性、性能优化以及异常处理等问题,确保服务的稳定性和可靠性。这就是Spring集成Hessian案例的主要内容。
1. **Spring核心模块**(spring-core-3.2.0.RELEASE.jar):这是Spring框架的基础,提供了基本的IoC(Inversion of Control)和DI功能,以及资源加载和异常处理机制。 2. **Spring上下文模块**(spring-context-...
标题中的“闲着没事Hessian开发WebService的总结(一)”表明这是一篇关于使用Hessian框架开发Web服务的文章,作者可能在其中分享了个人的经验和理解。Hessian是一种轻量级的远程调用协议,它允许Java和.NET之间进行...
1. 异常处理:在调用远程方法时,可能会出现网络异常或服务器异常,需要捕获并处理这些异常。 2. 日志记录:为了方便调试,可以在代码中添加日志记录,以便查看请求和响应的详细信息。 六、安全考虑 在实际应用中,...
3. 错误处理:Hessian在处理异常时,需要开发者自定义错误处理机制,以确保在出现问题时能正确恢复或通知用户。 总的来说,Hessian 4.0.7是一个强大的工具,它简化了Java应用之间的通信,提高了性能。通过深入研究...
1、开发环境:eclipse3.1 + jdk1.5; 2、样例说明: 1)spring + hessian; 2)hessian。 3、样例内容: 1)HashMap传递; 2)简单对象传递; 3)异常处理
- **异常处理**:指导如何处理远程调用过程中可能出现的异常,如网络中断、超时等问题。 - **性能优化**:可能包括一些最佳实践和性能优化技巧,比如缓存策略、连接池管理等。 5. **java-hessian压缩包内容**: ...