我将Activiti war文件复制到Tomcat webapps并且它启动正常,我可以打开Activiti Explorer。
当我在为Activiti配置Eclipse之后重新打开Tomcat 7(帮助 - >安装新软件 - > http://activiti.org/designer/update/),并重启Tomcat时,我得到一个例外: -
引起:java.io.NotSerializableException:org.activiti.workflow.simple.converter.json.SimpleWorkflowJsonConverter at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream) .java:1547)at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:15 08)at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177 )在java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
有什么想法吗?
感谢。
PS: - 我在另一个帖子中读到了这个评论的类似错误: -
“您包含的例外只是一个会话序列化问题,所以没什么大不了的。 但是你遇到了真正的问题吗?“。
答案 0 :(得分:2)
当Tomcat关闭时,它会尝试将对象保留在磁盘上的用户会话中。 同样,当它重新启动时,它会尝试将这些持久化对象从磁盘加载到内存中。
这称为[de-]序列化(或[un-]编组)。
要实现这些操作,要[de-]序列化的对象必须实现java.io.Serializable
接口。
在这种特殊情况下,似乎类org.activiti.workflow.simple.converter.json.SimpleWorkflowJsonConverter
没有实现此接口。
要阻止磁盘[de-]序列化,只需取消注释 $ {tomcat-dir] /conf/context.xml 文件中的“Manager”XML元素。
(来源:http://mihail.stoynov.com/2011/04/11/disable-session-persistence-in-tomcat/)
答案 1 :(得分:1)
打开activiti-explorer.war并更改META-INF / context.xml,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<Context reloadable="false">
<!-- Disable session persistence -->
<Manager pathname="" />
</Context>
要了解这会如何影响部署,请参阅此文档: http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Persistence_Across_Restarts