我使用SerializationUtils.clone克隆我的对象。相同的代码在JBOss EAP 6.0中运行良好。当我在处理过程中我向glassfish 3.1.2.2迁移时我的误差
2013-12-10 16:55:44,069 ERROR ge.nbsm.weGGI.Workflow.WorkflowManager - Exception in Manage Workflow -->
org.apache.commons.lang.SerializationException: java.lang.ClassNotFoundException: ge.nbsm.weGGI.valueObjects.DataContainerVO
at org.apache.commons.lang.SerializationUtils.deserialize(SerializationUtils.java:165)
at org.apache.commons.lang.SerializationUtils.deserialize(SerializationUtils.java:192)
at org.apache.commons.lang.SerializationUtils.clone(SerializationUtils.java:80)
at ge.nbsm.weGGI.Workflow.ObjectInterface.makeDACall(ObjectInterface.java:54)
at ge.nbsm.weGGI.Workflow.WorkflowManager.makeDACall(WorkflowManager.java:648)
at ge.nbsm.weGGI.Workflow.WorkflowManager.manageWorkflow(WorkflowManager.java:395)
at ge.nbsm.weGGI.common.utility.XMLProcessor.parseXML(XMLProcessor.java:487)
at ge.nbsm.weGGI.queue.QueueManager.processRequest(QueueManager.java:169)
Caused by: java.lang.ClassNotFoundException: ge.nbsm.weGGI.valueObjects.DataContainerVO
at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:787)
at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:696)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:603)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at org.apache.commons.lang.SerializationUtils.deserialize(SerializationUtils.java:162)
... 66 more
奇怪..相同的代码没有造成任何问题。我正在使用commons-lang-2.4.jar。普通的java接口克隆不能满足我的要求。请帮助解决此问题,如果您需要其他详细信息,请与我们联系
答案 0 :(得分:0)
由于SerializationUtils.clone面临问题,我已将我的代码更改为java深度克隆概念。深度克隆执行我期望的功能。请参阅以下链接
http://alvinalexander.com/java/java-deep-clone-example-source-code