来自未使用的包的WAS序列化异常

时间:2014-09-05 13:16:23

标签: java logging serialization websphere

我在生产WebSphere 8服务器日志中看到以下异常:

WASSession    E MTMBuffWrapper getBytes write object exception. 
e= java.io.NotSerializableException: org.apache.commons.logging.impl.Jdk14Logger

但是,部署的应用程序中使用的唯一日志包是java.util.logging.Logger

我在本地RAD服务器中没有看到任何序列化异常,仅在生产环境中。

有什么想法吗?

2 个答案:

答案 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库解决了该问题。