`
weishuwei
  • 浏览: 326465 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

直接操作po造成hessian序列化问题

阅读更多
异常如下:
客户端:
Cannot access Hessian service at [http://远程ip/remote/authService]; nested exception is com.caucho.hessian.io.HessianProtocolException: 500: java.io.IOException: Server returned HTTP response code: 500 for URL:
服务端:
com.caucho.hessian.io.IOExceptionWrapper: java.lang.ClassNotFoundException: long
解决:我本来要同步school对象的(school和actCode对象是一对一),结果school中含有actCode信息,所以出现这种错误,school.setActCode(null);即可.

出现这个问题时,百思不得其解啊,看控制台输出提示是hessian反序列化过程中出现问题,看来问题出现在上传的对象中,debug后发现了问题所在,看来还是实践出真知啊,
总结:
以后远程调用时尽量不要直接操作po,以免出现不必要的问题(hessian不能操作复杂的对象)


以下是一对一关系,以前一般用一对多,对一对一关系还是有点生疏.
school.hbm.xml
 
  1. <one-to-one name="actcode" class="SysActCode" cascade="save-update" outer-join="auto" constrained="true"/>  


SysActCode.hbm.xml
 
  1. <one-to-one name="school" class="School" cascade="save-update" outer-join="true" constrained="false"/> 

School school = this.getSchoolInfoService().getModel(this.getId());
//Hibernate:select s.ID, s.manager,... from school_info s where s.ID=?
if(school.getActcode()!=null){//这里不为null;
    /**
    * 但是System.out.println(school.getActcode());会抛出异常:
    * LazyInitializationException:could not initialize proxy,the owning Session was closed
    * 看来hibernate先用代理对象标识一下而已,在取值时才加载对象,
    */

}

one-to-one,many-to-one的lazy默认为proxy,并且只能为false或proxy或no-proxy,不能为true;
单点关联中lazy可以设置: 
lazy  (可选  -  默认为  proxy):  默认情况下,单点关联是经过代理的
lazy= "no-proxy"指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetche lazily)需要运行时字节码的增强)
lazy= "false"指定此关联总是被预先抓取
分享到:
评论

相关推荐

    hessian学习基础篇——序列化和反序列化

    这对于优化自定义序列化逻辑或者解决Hessian使用中遇到的问题非常有帮助。 总结起来,Hessian是一种高效、轻量级的二进制序列化协议,特别适合于跨语言的网络通信。理解并掌握Hessian的基本概念和使用方法,能够...

    Hessian 的字段序列化小记

    本文将围绕"Hessian的字段序列化小记"这一主题,深入探讨Hessian的工作原理、序列化过程以及其在实际应用中的价值。 Hessian的目标是通过减少数据传输的体积来提高网络通信的效率。相比于XML和JSON等文本格式,...

    hessian序列化规范

    《Hessian序列化规范详解》 在分布式系统中,数据传输是不可或缺的一部分,而序列化与反序列化作为数据传输的基础,扮演着至关重要的角色。Hessian,作为一种高效的二进制序列化协议,由Caucho公司开发,广泛应用于...

    S25-hessian反序列化1

    在使用Hessian时,需要注意其安全问题,因为不正确的序列化处理可能导致潜在的安全风险,例如远程代码执行(RCE)漏洞。因此,在实际开发中,应确保了解并正确使用Hessian,以防止潜在的安全隐患。

    浅谈Java序列化和hessian序列化的差异

    Java序列化和Hessian序列化的差异 Java序列化和Hessian序列化是两种常用的序列化机制,它们都可以将对象转换为字节流,以便在网络上传输。但是,两者之间有着很大的差异,今天我们就来比较一下它们的实现机制和特点...

    Hessian 2.0序列化协议规范.docx

    《Hessian 2.0序列化协议规范》 在分布式计算和网络通信中,数据的序列化和反序列化是至关重要的环节。Hessian 2.0是一种高效的二进制序列化协议,它旨在减少网络传输的数据量,提高数据交换的效率。本文将详细介绍...

    Nacos JRaft Hessian 反序列化 RCE 分析.pdf

    这一安全问题的核心在于 Nacos JRaft 在处理来自客户端的特定构造的数据时未能正确地验证或过滤这些数据,从而允许攻击者通过发送恶意构造的 Hessian 数据包来触发反序列化操作,进而执行任意代码。 #### 三、漏洞...

    Hessian

    2. **简单类型支持**:Hessian支持基本的Java数据类型,如整型、浮点型、字符串、日期等,并且可以序列化和反序列化复杂对象。 3. **流式传输**:Hessian协议允许数据分块传输,这意味着服务端可以立即响应部分结果...

    removal RCE、Hessian 反序列化、Yaml反序列化、密码解密、部分常用敏感路径(漏洞更新截止2024.9.12)

    removal RCE、Hessian 反序列化、Yaml反序列化、密码解密、部分常用敏感路径(漏洞更新截止2024.9.12)

    Hessian应用

    这样,客户端通过网络发送一个Hessian序列化的请求,服务端接收后反序列化为本地对象,然后执行相应的操作,再序列化结果返回给客户端。 在实际应用中,Hessian主要应用于以下场景: 1. **分布式服务调用**:通过...

    Spring中集成Hessian的问题

    在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java对象。Hessian使得服务提供者和服务消费者之间能够通过网络进行快速的数据...

    Hessian学习简单demo

    Hessian的目标是提供一种快速、简洁的数据序列化和远程方法调用(RPC)机制。在这个简单的demo中,我们将探讨Hessian的核心概念,以及如何在实际应用中使用它。 首先,我们需要理解什么是数据序列化。数据序列化是...

    Hessian 学习 例子 实例

    在IT行业中,Hessian是一种二进制序列化协议,它被广泛用于远程方法调用(RMI)和Web服务中,以提高数据传输效率。Hessian由Caucho Technology开发,其目标是提供轻量级、高效的通信方式,特别是在网络带宽有限的...

    dubbo-hessian协议http请求demo(java)

    - 在实际开发中,我们可能会需要编写一些辅助工具类来处理Hessian的相关操作,例如Hessian2Input和Hessian2Output,它们用于读写Hessian序列化的二进制流。 6. **安全性与优化**: - 虽然Hessian协议效率高,但其...

    dubbo-hessian-lite

    【描述】中提到的 "dubbo源码编译时依赖的hessian-lite" 指的是,当开发者在构建或运行 Dubbo 项目时,由于 Hessian-lite 不可直接从官方仓库获取,因此需要用户自行操作。Hessian 是一种高效的二进制序列化协议,由...

    hessian4.0.7结合spring2.5.6的bug

    通过研究这些文件,开发者可以直接看到问题的现象,理解问题的上下文,并尝试各种解决方案,如更新Hessian到兼容的版本、调整Spring配置、修复序列化类或者优化异常处理逻辑。 总的来说,Hessian 4.0.7与Spring ...

    hessian-4.0.38.jar

    java hessian-3.0.38.jar。修改了原生的jar包,解决了hessian 序列化BigDecimal的精度问题。注意,请在hessian服务端和客户端中分别替换此jar包哦!! 只替换服务端hessian jar包还是会有问题。

    Hessian多个版本打包下载

    这包括设置服务器端和客户端的Hessian服务,定义服务接口,处理序列化和反序列化的过程,以及调试可能出现的问题。在进行版本升级时,要注意兼容性问题,确保旧版本的服务仍能正常工作,同时充分利用新版本带来的...

    hessian java +c# 数据测试

    在Java端定义的类可以通过Hessian的`Hessian2Output`进行序列化,C#端的类则需要通过HessianNet的解码器来反序列化。 至于"List"和"Map",它们在Hessian中也有特别的处理方式。Hessian可以序列化和反序列化List和...

Global site tag (gtag.js) - Google Analytics