天天看點

Oracle Coherence應用部署到Jboss EAP 6.x 時 NoClassDefFoundError: sun/rmi/server/MarshalOutputStream 的解決辦法

Oracle Coherence應用部署到Jboss EAP 6.x 時 NoClassDefFoundError: sun/rmi/server/MarshalOutputStream 的解決辦法

今天将一個web應用從weblogic 10.3遷移到jboss EAP 6.3上,該應用使用oracle coherence做為緩存,部署上去後,啟動時一直報如下錯誤:

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_29]

    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_29]

    at org.jboss.threads.JBossThread.run(JBossThread.java:122)

Caused by: java.lang.NoClassDefFoundError: sun/rmi/server/MarshalOutputStream

    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_29]

    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [rt.jar:1.6.0_29]

    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_29]

    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules.jar:1.3.3.Final-redhat-1]

    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) [jboss-modules.jar:1.3.3.Final-redhat-1]

換jdk版本,換jboss版本等各種招數用盡,均不湊效,隻能~翻~牆~出去,看看外面的世界!

google了一圈,找到解決辦法,真應了最近的那句流行語:世界這麼大,我想出去看看!

修改以下檔案

/jboss-eap-6.3/modules/system/layers/base/sun/jdk/main/module.xml

找到path name=...位置,添加一行(紅色部分)

<dependencies>

        <system export="true">

            <paths>

                <path name="sun/rmi/server"/>

                <path name="com/sun/script/javascript"/>

                <path name="jdk/nashorn/api/scripting"/>

...

作者:菩提樹下的楊過

出處:http://yjmyzz.cnblogs.com

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。