ClassNotFoundException:org.objectweb.jotm.SubCoordinator_Stub

ClassNotFoundException: org.objectweb.jotm.SubCoordinator_Stub

我的应用程序日志中低于 JOTM 异常。我没有发现任何因此而中断的功能。我试图弄清楚它从哪里开始并最终找到 0 个启动此错误的自定义代码。除此之外,我尝试从 lib 目录(ant 项目)中替换 jotm jar(com.springsource.org.objectweb.jotm-2.0.10.jar),但我仍然无法摆脱这个错误。 有没有人以前有过相同或相似的堆栈跟踪并克服了它?

请分享任何有用的想法以消除此错误消息。

2017-02-16 14:41:56,524 [    TransactionImpl.java:JotmBatch:769] - TransactionImpl.timeoutExpired
DEBUG [JotmBatch] (TransactionImpl.java:980) - make subcoordinator
2017-02-16 14:41:56,524 [    TransactionImpl.java:JotmBatch:980] - make subcoordinator
ERROR [JotmBatch] (TransactionImpl.java:988) - new SubCoordinator raised exception: 
java.rmi.StubNotFoundException: Stub class not found: org.objectweb.jotm.SubCoordinator_Stub; nested exception is: 
    java.lang.ClassNotFoundException: org.objectweb.jotm.SubCoordinator_Stub
    at sun.rmi.server.Util.createStub(Util.java:297)
    at sun.rmi.server.Util.createProxy(Util.java:142)
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:197)
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:179)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastServerRef.exportObject(JUnicastServerRef.java:124)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastRemoteObject.exportObjectR(JUnicastRemoteObject.java:126)
    at org.objectweb.carol.rmi.jrmp.server.JUnicastRemoteObject.exportObject(JUnicastRemoteObject.java:103)
    at org.objectweb.carol.rmi.multi.JrmpPRODelegate.exportObject(JrmpPRODelegate.java:96)
    at org.objectweb.carol.rmi.multi.MultiPRODelegate.exportObject(MultiPRODelegate.java:90)
    at javax.rmi.PortableRemoteObject.exportObject(PortableRemoteObject.java:100)
    at javax.rmi.PortableRemoteObject.<init>(PortableRemoteObject.java:84)
    at org.objectweb.jotm.SubCoordinator.<init>(SubCoordinator.java:201)
    at org.objectweb.jotm.TransactionImpl.makeSubCoord(TransactionImpl.java:985)
    at org.objectweb.jotm.TransactionImpl.timeoutExpired(TransactionImpl.java:788)
    at org.objectweb.jotm.TimerEvent.process(TimerEvent.java:103)
    at org.objectweb.jotm.TimerManager.batch(TimerManager.java:230)
    at org.objectweb.jotm.Batch.run(TimerManager.java:87)
Caused by: java.lang.ClassNotFoundException: org.objectweb.jotm.SubCoordinator_Stub
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at sun.rmi.server.Util.createStub(Util.java:292)
    ... 16 more

很难找出确切原因,但 ClassNotFoundException 很可能意味着您的项目的运行时依赖项配置不正确。某些库代码尝试通过名称加载 class,但 class 不在 class 路径 .

接下来的步骤将有助于解决它:

1) 找到包含 SubCoordinator_Stub 的 jar,并确保此 jar 包含在项目的 runtime 依赖项中。

2) 如果第一个选项已经完成但没有帮助,您的应用程序中可能有不同的类加载器。找出哪个用于加载 class 并尝试理解为什么它没有依赖性。


最终答案: 丢失的 jar 是 jotm-core.jar,可以使用 google 搜索轻松找到它。但是,我错过了这个,因为我认为 jotm 是包含所有内容的独立库,这是错误的。