0

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 インターフェイスの複製が機能しません。この問題を解決するのを手伝ってください。追加の詳細が必要な場合はお知らせください

4

1 に答える 1

0

SerializationUtils.clone が問題に直面しているため、コードを Java ディープ クローニングの概念に変更しました。ディープ クローニングは、期待どおりの機能を実行します。以下のリンクを参照してください

http://alvinalexander.com/java/java-deep-clone-example-source-code

于 2013-12-12T14:25:42.713 に答える