`
阅读更多
最近有几个项目组在使用spring http invoker调用SSO远程接口时,发现一个错误。
org.springframework.remoting.RemoteAccessException: 
Could not deserialize result from HTTP invoker remote service [http://192.168.180.15:8080/spring-http-invoker/httpservice/userInfoService];
nested exception is java.io.InvalidClassException: org.hibernate.collection.AbstractPersistentCollection; 
local class incompatible: stream classdesc serialVersionUID = -7982170513654570219, local class serialVersionUID = -5723701046347946317

        经调查,这个是由于SSO的hibernate版本和某些新项目的hibernate版本不一致造成。 很多人都会奇怪,远程接口调用跟hibernate有什么关系。
         其实是这样的:
         远程方法返回的复杂对象中包含了set,  这个set一般是hibernate一对多关系从数据库中load出来的。虽然这个set定义的是java.util.set接口, 但是其实实例是:org.hibernate.collection. PersistentSet.
        我们看一下org.hibernate.collection. PersistentSet 这个类的定义:
public class PersistentSet extends AbstractPersistentCollection  implements Set

         所以说传到客户端的对象中,其实是包含了PersistentSet,当客户端进行反序列化的时候,由于hibernate版本不一致, 导致报org.hibernate.collection.AbstractPersistentCollection 错误。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Spring HttpInvoker的封装

    **Spring HttpInvoker的封装** 在Java企业级应用开发中,Spring框架因其强大的功能和灵活性而被广泛应用。HttpInvoker是Spring框架的一部分,它提供了一种基于HTTP协议的远程调用机制,使得不同网络环境中的Java...

    Spring HttpInvoker介绍

    公司内部讲义,比较了SOA,RMI和Spring HttpInvoker。并介绍了Spring HttpInvoker的基本使用方法。

    Spring HttpInvoker

    Spring HttpInvoker,是一套基于Maven+Spring+SpringMVC+MyBatis框架,还包含了Invoker的客户端及服务器端的demo实例

    使用httpInvoker提供远程服务

    在分布式系统中,远程服务调用是常见的需求,Spring框架提供了多种远程服务支持,其中包括HttpInvoker。HttpInvoker是Spring框架的一部分,它允许开发者使用HTTP协议进行远程方法调用,而不需要额外的类库。与...

    Spring HttpInvoker 初学实例

    org.springframework.remoting.httpinvoker最基本的实现例子,这是3个eclipse的JavaEE工程,全部导入即可,能运行。 初学可以轻松了解Spring HttpInvoker 的结构和使用。

    spring httpInvoker示例

    在本文中,我们将深入探讨如何使用Spring框架中的HTTP Invoker组件进行远程方法调用(RMI)的实例。HTTP Invoker是Spring框架提供的一种轻量级远程调用解决方案,它利用HTTP协议在客户端和服务端之间传输Java对象。...

    springboot-httpinvoker-demo.zip

    而在微服务架构中,服务间通信是必不可少的一部分,HTTP Invoker作为Spring框架的一个组件,为Spring Boot应用提供了一种轻量级的远程方法调用(RMI)方案。本篇将深入探讨SpringBoot HTTP Invoker的原理、配置以及...

    spring-httpinvoker-demo

    Spring HTTP Invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用,也就是说,可以通过防火墙,并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的...

    Spring 实现远程访问详解——httpinvoker

    Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和返回值是比较复杂的,通过httpInvoker有巨大的优势。 1. 远程访问流程 1) 服务端定义服务接口 2) 服务端实现服务接口 3) 暴露服务...

    http invoker 做post测试

    HTTP Invoker 是一个Java框架,主要用于在分布式系统中进行远程方法调用(RPC)。它通过HTTP协议提供服务,使得客户端可以像调用本地方法一样调用远程服务。在这个场景下,“http invoker 做post测试”指的是在完成...

    Spring的HttpInvoker使用示例 (可下载源码)

    NULL 博文链接:https://lggege.iteye.com/blog/369151

    Java Spring2.5 Remote Invoke HTTP Invoker

    Java Spring 2.5 Remote Invoke HTTP Invoker 是一个基于HTTP协议的远程调用框架,它允许Spring应用通过HTTP协议来调用远程服务。这个技术在分布式系统中非常有用,因为它可以轻松地跨越网络边界,实现服务间的通信...

    Http Invoker

    Http Invoker基于HTTP协议,允许测试人员发送GET、POST、PUT、DELETE等常见的HTTP请求到目标接口。它能够设置请求头、参数、cookies等,以便模拟真实的用户行为。收到服务器响应后,Http Invoker会解析响应内容,...

    HttpInvoker.zip http调试工具

    HttpInvoker允许开发者模拟各种HTTP请求,包括GET、POST、PUT、DELETE等常见操作,同时也支持自定义头信息和请求体内容。这对于测试API接口或验证服务器响应非常有用。它能展示完整的HTTP交互过程,包括请求头、响应...

    Java Spring1.2 Remote Invoke HTTP Invoker

    Java Spring 1.2 远程调用HTTP Invoker是一个基于HTTP协议的远程服务调用框架,它是Spring框架的一部分,允许应用通过HTTP协议进行服务间的通信。这种通信方式相对于RMI(Remote Method Invocation)等其他远程调用...

    用Http Invoker实现RCP客户端与后台的交互

    在IT行业中,远程过程调用(Remote Procedure Call, RPC)是一种常见的通信机制,它允许一个程序调用另一个在不同地址空间(通常是网络另一端)的程序。`Http Invoker`是Spring框架提供的一种基于HTTP协议的RPC实现...

    基于Spring的HttpInvoker实现改写egova_invoker.zip

    基于Spring的HttpInvoker实现改写服务器端调用: HttpInvoker.invoker 方法,设置InvokerProcess处理客户端调用: ProxyFactory.proxy 方法,生成接口的代理对象,直接调用方法客户端和服务器端的接口和实体类要...

    Hessian 、 HttpInvoker 、 XFire 、 Axis

    Hessian、HttpInvoker、XFire和Axis是四种常见的远程调用框架,它们各自有不同的特性和应用场景。 Hessian是一种轻量级的二进制RPC协议,它通过HTTP进行传输,减少了网络开销,提高了服务调用效率。Hessian提供了...

    Eclipse工程Http Invoker Service & Client

    Http Invoker是Spring框架的一个组件,允许在分布式环境中通过HTTP协议透明地调用Java对象的方法,提供了一种轻量级的RPC(Remote Procedure Call)实现。 **Http Invoker服务端(Service)** 在Http Invoker...

    改造Spring的HttpInvoker, 去掉对Bean的XML配置文件的依赖

    NULL 博文链接:https://lggege.iteye.com/blog/404124

Global site tag (gtag.js) - Google Analytics