Oracle Coherence应用部署到Jboss EAP 6.x 时 NoClassDefFoundError: sun/rmi/server/MarshalOutputStream 的解决办法

时间:2022-04-23
本文章向大家介绍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"/>

...