相同的代码在一个 Websphere 应用程序服务器环境中抛出 java.io.NotSerializableException,但在另一个环境中不抛出

Same code throws java.io.NotSerializableException in one Websphere app server environment but not the other

我们在 UAT WAS 环境中遇到了一个有趣的问题。部署到 DEV(1 个节点)环境的相同代码可以完美运行。但是,它在具有相同配置的 UAT(2 个节点)上抛出以下异常。唯一的区别是节点的数量。 有哪位遇到过,请指教

FFDC Exception:java.io.NotSerializableException SourceId:com.ibm.ws.session.store.db.DatabaseHashMap.commonSetup ProbeId:2052 Reporter:java.util.Hashtable@47a5b63a java.io.NotSerializableException: test.com.controller.myController

Env(DEV-1 节点):WebSphere Platform 9.0.5.3 [BASE 9.0.5.3 f5032008.04] [JAVA8 8.0.6.7 ...] Env(UAT-2 节点):WebSphere Platform 9.0.5.3 [BASE 9.0.5.3 f5032008.04] [JAVA8 8.0.6.7 ...]

提前致谢!

我们发现了问题,似乎控制器的数据模型 class 和超级 class 没有实现可序列化。可能是子控制器调用了一些超级 class 方法导致了这个问题

可能您在 UAT2 环境中配置了会话持久性,并且您的应用程序在 http 会话中存储了不可序列化的内容。在 UAT1 中,您只有一个服务器,因此在这种情况下不需要会话持久性,因此也不例外。