使用struts2 对java 对象进行序列化时报错:
java.lang.NoSuchMethodException: com.entity.message.push.OSMessage.getHibernateLazyInitializer() at java.lang.Class.getMethod(Class.java:1607) at org.apache.struts2.json.JSONWriter.findBaseAccessor(JSONWriter.java:266) at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:194) at org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:171) at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:161) at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:127) at org.apache.struts2.json.JSONWriter.write(JSONWriter.java:95) at org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:91)
有问题的代码:
原因:message对象是使用hibernate的load方式从数据库中获取的。所以实际上message是一个代理,不是message对象本身,所以序列化时报错。
解决方法:通过clone 克隆,返回一个真实的对象
同时Message对象必须实现Cloneable 接口,Message类中增加方法:
public Message clone() throws CloneNotSupportedException { return (Message) super.clone(); }
使用clone 克隆时,返回的不是代理,是真实的message对象。
相关推荐
在Java编程中,`java.lang.NoSuchMethodException` 是一个常见的运行时异常,它表示尝试调用一个不存在的方法。这个异常通常发生在动态方法调用或反射操作中。在给出的标题 "java.lang.NoSuchMethodException: ....
Java中的`java.lang.NoSuchMethodException`异常通常表明在运行时尝试调用一个不存在的方法。这个错误通常发生在动态代理、反射或者其他需要在运行时查找或调用特定方法的场景。在这个特定的问题中,错误提示是`java...
在Java编程中,`NoSuchMethodException` 是一个常见的运行时异常,它发生在尝试调用一个不存在的方法时。这个异常属于`java.lang`包,通常在动态方法调用或反射操作时抛出。当我们试图通过对象实例或类来执行一个在...
在Java编程中,`java.lang.NoSuchMethodException`异常通常表明在运行时尝试调用一个不存在的方法。这个错误在上传文件时出现,可能是由于在控制器方法的签名与前端发送请求时的参数不匹配导致的。在描述中提到的...
MyBatis-通用Mapper通过逆向工程(Reverse Engineering)和代码生成工具,能够自动生成与数据库表相关的Java实体类、Mapper接口和Mapper XML配置文件,极大地提高了开发效率。下面我们将深入探讨这个工具的使用和...
在Java编程中,`java.lang.NoSuchFieldException`是运行时异常的一种,通常发生在尝试访问或操作一个类的字段,但该字段在指定的类或其任何超类中不存在时。这个异常表明在编译期间可能存在的字段在运行时无法找到,...
- **java.lang.NoSuchMethodException**:当试图调用不存在的方法时抛出。 理解并能有效地处理这些异常对于编写健壮的Java程序至关重要。Java API文档提供了每个异常的详细描述和用法,是开发者解决问题的宝贵资源...
11. **java.lang.NoSuchMethodException**: 当试图调用一个不存在的方法时,抛出此异常。检查方法名、参数列表和返回类型是否与实际方法匹配。 12. **java.lang.AbstractMethodError**: 当实现接口或继承抽象类的类...
9. **`java.lang.NoSuchMethodException`**:当尝试调用一个不存在的方法时抛出。确保方法签名正确,类路径和类加载器设置无误。 除了上述异常,还有许多其他类型的异常,如`ClassNotFoundException`、`...
java.lang.NullPointerException 是一种常见的错误,发生在程序中调用了未经初始化的对象或不存在的对象时。例如,在创建图片或调用数组时,如果图片未经初始化或数组元素未经初始化,就会出现该错误。解决方法是...
11. **`java.lang.NoSuchMethodException`**:方法未找到异常。当尝试调用一个不存在的方法时,会抛出此异常。检查方法名、参数类型和返回类型是否匹配。 异常处理是Java编程中不可或缺的一部分,良好的异常处理...
11. **java.lang.NoSuchMethodException**: 当试图调用一个不存在的方法时,会抛出此异常。检查方法名、参数列表以及类的API文档,确保方法确实存在。 12. **java.lang.AbstractMethodError**、**java.lang....
然而,当开发者尝试使用反射调用一个不存在的方法时,便会遇到`java.lang.NoSuchMethodException`异常。本文将深入探讨此异常,特别是它在服务器端Java应用中的常见场景——例如Struts框架——并提供详细的解决方案...
- **`java.lang.NoSuchMethodException`**:方法未找到异常。 #### 三、总结 异常处理对于编写健壮和可靠的Java应用程序至关重要。理解不同类型的异常及其触发条件可以帮助开发者更好地设计和维护代码。此外,...
12. **`java.lang.NoSuchMethodException`**: 在调用一个不存在的方法时抛出。确保方法签名正确,且类确实包含了这个方法。 了解并适当地处理这些异常可以帮助编写出更健壮、更易于维护的代码。当捕获到异常时,...
java.lang.UnsupportedClassVersionError 是一种不支持的类版本错误,指的是在程序中 Java 虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前 Java 虚拟机支持的时候,抛出的异常。 33. java.lang...
《PetShop 4.0 源码深度解析与学习指南》 PetShop 4.0 是一个经典的ASP.NET应用程序示例,对于那些已经具备C#和ASP.NET基础的开发者来说,它是一个极好的学习资源。这个项目展示了如何在.NET框架下构建一个完整的...
11. **java.lang.NoSuchMethodException**: 当尝试调用一个不存在的方法时,会抛出此异常。检查方法名、参数类型和方法签名是否与源代码匹配。 对于Java异常,最佳实践包括: - 使用try-catch-finally块来捕获和...
- **`java.lang.NoSuchMethodException`**:当反射调用不存在的方法时抛出。 ### 运行时异常 除了上述提到的检查性异常之外,还有一些不需显式捕获的运行时异常,例如: - **`java.lang.AssertionError`**:断言...