- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我们刚刚切换到 Glassfish V2。我们现在在设置 session 属性时遇到错误。
错误是:
java.lang.IllegalArgumentException: PWC2788: setAttribute: Non-serializable attribute
代码是:
getRequest().getSession().setAttribute("questionsForUser", getQuestions());
getQuestions() 只是一个简单的 getter,它位于名为“Parent Action”的抽象类中....所以要使 getQuestions() 成为一个序列化对象,我的类是否需要实现可序列化?:
public List getQuestions() {
return questions;
}
编辑:我正在使用 ORM (iBatis)
关于“问题”的更多信息
二传手:
public void setQuestions(List questions) {
this.questions = questions;
}
setter 在这个方法中被调用。此方法调用 iBatis 映射。
public void prepareQuestions()
{
setExamIfaceDAO((SecurityExamIfaceDAO)ApplicationInitializer.getApplicationContext().getBean("securityExamIfaceDAO"));
String userRole = questionsBasedOnUserRole();
int questionsToBeShown = 0;
if (userRole.equalsIgnoreCase("C"))
questionsToBeShown = 15;
else if (userRole.equalsIgnoreCase("U"))
questionsToBeShown = 10;
List local_questions = getExamIfaceDAO().getSecurityQuestions(userRole);
Collections.shuffle(local_questions);
if (local_questions.size()>=questionsToBeShown)
setQuestions(local_questions.subList(0, questionsToBeShown));
getRequest().getSession().setAttribute("questionsForUser", getQuestions());
}
最佳答案
您可以通过使用可序列化列表实现并确保列表中的对象也是可序列化的来使对象可序列化。
是的——最好只将可序列化的对象放入 session 中,因为这将允许您的应用程序在具有多个节点的服务器上运行。即使你现在不关心这个,它在将来可能会有用。
servlet 容器应该确保 session 不会在用户之间交换。使存储在 session 中的对象可序列化允许容器在集群中的多个节点上“分发” session 状态,从而允许拥有 session 的用户请求由任何节点提供服务。
关于java - 设置属性 : Non-serializable attribute (Java Object Serialization),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1662348/
实现了Serializable接口(interface)的类的子类是否也实现了Serializable?也就是说子类的实例也可以序列化吗? 最佳答案 I wanted to ask whether t
当对象可序列化或不可序列化时,将数据对象保存到数据库有什么不同。 例如:我有一个名为 Book 的域类 class Book implements Serializable{ private int
我的理解是conflict serializable 隐含serializable。我不确定这如何让他们与众不同。可序列化是否意味着冲突可序列化? 最佳答案 冲突可序列化是可序列化的一个子集,因此仅仅
我正在阅读接口(interface) Serializable 的文档,我在其中找到以下几行: To allow subtypes of non-serializable classes to be
scala @Serializable 的 Action 方式与Java Serializable 不同吗? 我的意思是序列化对象的方式还是两者都使用相同的标准序列化? 最佳答案 Scala 可以编译
我遇到过使用这两种表示法中的任何一种的例子。我找不到关于它的任何信息,说明哪一个是常见的,为什么允许使用 2 个符号,以及两者之间是否存在任何细微差别。 有人有想法吗? 最佳答案 不,没有功能差异。
“可序列化”类中的字段应该是 transient 的或可序列化的,可以修复在另一个类中使用的任何实体/类,但当在甚至无法创建的 dto 类中声明 List/Map 时,就会发生这种情况也一样短暂。请让
我面临任务不可序列化的问题,我检查了其他答案并使我的调用和调用类可序列化。我的代码就像 - public class MultiClassification implements Serializab
我到处都读到 Java Serializable 比 Parcelable 慢得多。 Kotlin Serializable 也是这样吗?或者 Kotlin Serializable 和 Kotlin
描述: 我有一个 ArrayList,它接受任何实现 Serializable 的类。我什至可以将实现 Serializable 的类的实例添加到这个数组列表中,而不会出现任何编译错误。 Java 泛
我正在实现一个可序列化的类(因此它是一个使用 RMI 的值对象)。但我需要测试它。有没有办法轻松做到这一点? 澄清:我正在实现这个类,所以在类定义中粘贴 Serializable 很简单。我需要手动对
我尝试执行以下简单代码。 System.out.println() 不打印单词“Serialized:”。输出为true。 ArrayList arrayList = new ArrayList();
伙计们,我有一个最简单的类,我想成为 Parcelable。我正在按照以下方式进行: public class MyField implements Serializable, Parcelable
我的问题与this 非常相似除了这个问题我在 SonarLint V3 (squid:S1948) 中遇到过。 我的代码是: public class Page implements Serializ
考虑下面的类(class)。如果我对它运行 Findbugs,它会在第 5 行但不在第 7 行给我一个错误(“可序列化类中的非 transient 非可序列化实例字段”)。 1 public clas
当我在 Spark(由 java 编写)应用程序中使用 UDF 函数时,出现此错误。 org.apache.spark.SparkException:任务不可序列化 在 org.apache.spar
我正在使用KTOR框架在我的Android应用程序中发出http请求。我在运行项目时遇到错误。。插件:。依赖关系:。模型类:。接口调用:。我花了几个小时寻找解决方案。我遵循了许多线索,但都没有奏效。我
我发现有人回答了可线性化和可串行化之间的差异,但我没有发现有人说可串行化与顺序一致性相同或不同。 此外,我在不同的文章、书籍和网页中对上述术语的不同定义感到震惊,我把这一切都搞糊涂了。 有人可以解释可
我读过几个相关的问题,但没有一个是更有趣的情况。 这是我的问题,假设我有课 class A implements Serializable { private int a; priva
我注意到在 Spring-boot 中很多人创建模型/实体并实现 Serialiazable 接口(interface)。 public class ModelBase implements Seri
我是一名优秀的程序员,十分优秀!