java.lang.IllegalArgumentException:setAttribute:不可序列化的属性

2024-01-14

我继承了一些代码,当我尝试运行它时遇到错误。错误如下:

10:08:32,093 ERROR [MyServlet]:260 - Servlet.service() for servlet MyServlet threw exception
java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1270)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1248)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130)
at uk.co.my.servlet.MyServlet.doPost(MyServlet.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.my.ddi.security.SecurityContextServletFilter.doFilter(SecurityContextServletFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:835)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Unknown Source)

我想主要问题是它击中我的代码的地方在 uk.co.my.servlet.MyServlet.doPost(MyServlet.java:172)。 MyServlet 的第 121 行是 session.setAttribute("LISTENER", myListener);

这个 myListener 对象来自以下类:

public class myListener {
    static Log log = LogFactory.getLog(TerminationListener.class.getName());
    private boolean shouldCancel = false;

我该如何摆脱这个错误?我需要使用瞬态关键字吗?


如果你想要一个实例myListener要放置在会话中,您需要使其可序列化。那might涉及使某些字段成为临时字段,但这些字段将不会保存在会话中。您还需要让课程实现Serializable.

我建议你看看可序列化的文档 http://java.sun.com/javase/6/docs/api/java/io/Serializable.html,其中详细介绍了有关序列化的信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.IllegalArgumentException:setAttribute:不可序列化的属性 的相关文章

随机推荐

  • 上传1GB或以上的文件

    上传大于 1 GB 的文件的最佳方式是什么 当前情况 我们正在使用 Flask 来部署网络服务器 我们必须上传大于 1 GB 的文件 以前我们只上传了几MB的文件 所以 这不是问题 但现在对于大于 1 GB 的文件 旧的上传方法不再可行 服
  • Qt 中带有进度回调的 CopyFileEx

    有人能给我一个在 Qt 中使用 CopyFileEx 和进度回调的工作示例吗 我发现了一些划痕并尝试合并它但没有成功 我什至无法将 CopyProgressRoutine 函数作为 CopyFileEx 的参数传递 因为我无法声明指向该函数
  • 加载 data.table 对象后直接使用 get(data.table) 生成新变量

    我正在尝试在 data table 中生成一个新变量 我生成 保存并再次加载该变量 加载后 我通过 get 间接寻址 data table 只要我之前不直接寻址它以创建变量 这对于生成新变量就不起作用 可能是某种环境问题 Generate
  • CDI 注入在 Servlet 中不起作用

    我真的需要你的帮助 我现在正在研究这个问题几周或几个月 对于这么长的帖子 我深表歉意 但我想尽可能准确地解释问题和我的设置 我的 JAVA EE 6 Web 应用程序主要包含 3 个 Servlet javax faces webapp F
  • 如何从我的 Git 存储库中删除未引用的 blob

    我有一个 GitHub 存储库 有两个分支 master and release The release分支包含二进制分发文件 这些文件导致存储库大小非常大 超过 250 MB 因此我决定清理这些内容 首先我删除了远程发布分支 通过git
  • Hibernate 5 和类型化标准查询 (JPA2)

    问题 1 如果我从 Hibernate 4 x 升级到 Hibernate 5 x 我是否仍然可以使用 旧 条件查询 或者仅使用新的条件查询TypedJPA2 标准查询 旧的是否已被弃用 或者我可以同时使用两者吗 2 我是否正确理解新的类型
  • ASP.NET Core 中 IUrlHelper 的注入

    In RC1 IUrlHelper可以注入到服务中 用services AddMvc 在启动课程中 这不再适用于RC2 有谁知道怎么做RC2就像刚刚更新一个UrlHelper需要一个ActionContext目的 不知道如何将其置于控制器之
  • 无法通过 Apps 脚本 (JDBC) 连接到本地 MySQL 服务器

    请参阅下面的编辑 我留下原始问题以帮助其他人 我尝试通过 Apps 脚本和 JDBC 连接到本地 MySQL 服务器 但我不断收到两个错误之一 这段代码 function connectTest var conn Jdbc getConne
  • 如何打开屏幕?

    重复警告 此问题针对服务和前端 有一些类似的线程 但重点关注 GUI 方法 Problem 从任何状态开始 背景中播放音乐 屏幕打开 原文如此 屏幕关闭 手机锁定 手机解锁等等 我只想更改状态中的一件事 打开屏幕 其他什么都不应该改变 At
  • 在调查问卷样式 DataGridView 中仅从多个复选框列中选择一个复选框

    我创建了一个显示DataGridView带着一系列的问题 dgv 结构由一个用于问题文本的字符串列和三个用于答案的布尔 复选框列 是 否 N A 组成 每个问题都显示在自己的行中 我希望我的程序只允许用户在每一行上仅选择 是 否 或 不适用
  • PHP 7.4 检查属性是否真正初始化

    我想在 PHP 7 4 中检查属性是否真正初始化 将属性设置为 null 意味着它是用 null 初始化的 我不能使用isset因为即使设置为 null 它也会返回 false 我不能使用property exists因为即使未初始化它也会
  • 具有相同名称的 Jaxb 对象

    似乎可以解组两个不同的 jaxb具有相同的对象name 有一个Bar班级 public abstract Bar private XmlElement String val 有两个实现 构造函数等省略 XmlRootElement name
  • 使用okHttp上传图片

    我想使用上传图像okhttp但我无法找到用于发布图像的 MultipartBuilder 我可以用什么来代替这个 这是我的代码 public static JSONObject uploadImage File file try final
  • 传递地图坐标数组以在地图上快速绘制路线

    您好 我有一个像这样的坐标数据数组 它是从 API 调用中检索的 我使用 for 循环将数据附加到如下数组中 extension TripListViewController UITableViewDelegate func tableVi
  • 什么是 def ... else ... end 结构?

    我有这个代码 def with else puts we enter something funny if true puts yes return YES end return what else puts no return else
  • 如何将线性线添加到具有数据框的多个数据集的图中?

    我有以下数据框 expected observed group 1 0 5371429 0 0000 1 2 1 3428571 1 3736 1 3 2 6857143 2 4554 1 4 5 3714286 3 6403 1 5 0
  • Sitecore DateField 的 DateTime 属性显示错误的日期

    在我的 Sitecore 项目中我使用DateTime Sitecore 的类型 字段作为属性Item 我试图通过以下代码获取该值 var dateField DateField item Fields Date var itemDate
  • Drupal 6:提交时 form_state 值为空

    我正在尝试在 Drupal 6 中创建一个自定义表单 下面的代码似乎一切正常 包括提交时在数据库中创建一个新条目 但所有 form state 值都是空的 我缺少什么
  • 操作码中的汇编段

    我注意到在操作码中使用了汇编段 Example MOV DWORD PTR SS EBP 30 30 我认为 PTR SS 用于指定EBP 30来自堆栈 SS 堆栈段 我是对的还是完全错的 而且 你能告诉我上面的例子和 MOV DWORD
  • java.lang.IllegalArgumentException:setAttribute:不可序列化的属性

    我继承了一些代码 当我尝试运行它时遇到错误 错误如下 10 08 32 093 ERROR MyServlet 260 Servlet service for servlet MyServlet threw exception java l