我在生产WebSphere 8服务器日志中看到以下异常:
WASSession E MTMBuffWrapper getBytes write object exception.
e= java.io.NotSerializableException: org.apache.commons.logging.impl.Jdk14Logger
但是,部署的应用程序中使用的唯一日志包是java.util.logging.Logger
。
我在本地RAD服务器中没有看到任何序列化异常,仅在生产环境中。
有什么想法吗?
答案 0 :(得分:0)
您在RAD中没有看到异常,因为您没有启用持久性会话或PMI计数器收集会话大小(可能是在制作时设置的)。
虽然您在代码中不使用org.apache.commons.logging.impl.Jdk14Logger
,但您在应用中使用的某种第三方框架很可能正在使用它。
您必须检查您在会话中放置的对象(搜索所有session.setAttribute()
方法调用)。您必须将一些第三方对象放入使用该记录器的会话中。
尝试从应用程序中删除commons-logging-1.1.jar(如果有的话)。
答案 1 :(得分:0)
WebSphere内部使用commons-logging库,因此冲突增加了。我们遇到了类似的问题,同样使用IBM提供的https://www.ibm.com/support/pages/javaionotserializableexception-thrown-websphere-application-server-community-edition-when-applications-are-stopped之类的解决方案也无济于事。在我们的案例中,jcl-over-slf4j库解决了该问题。