错误java.lang.NoClassDefFoundError:com/ZeroTurnound/javarebel/BP

错误java.lang.NoClassDefFoundError:com/ZeroTurnound/javarebel/BP,java,jrebel,Java,Jrebel,我在使用JBOSS和JRebel在Eclipse上部署应用程序时收到了这条消息 Caused by: java.lang.NoClassDefFoundError: com/zeroturnaround/javarebel/BP at org.jboss.as.ejb3.component.EJBValidationConfigurator.configure(EJBValidationConfigurator.java:67) at org.jboss.as.ee.compon

我在使用JBOSS和JRebel在Eclipse上部署应用程序时收到了这条消息

Caused by: java.lang.NoClassDefFoundError: com/zeroturnaround/javarebel/BP
    at org.jboss.as.ejb3.component.EJBValidationConfigurator.configure(EJBValidationConfigurator.java:67)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:80)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [jboss-as-server-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
    ... 5 more
Caused by: java.lang.ClassNotFoundException: com.zeroturnaround.javarebel.BP from [Module "org.jboss.as.ejb3:main" from local module loader @1ec41c0 (finder: local module finder @1d0e2c9 (roots: C:\Users\Public\DesenvolvimentoJava\jboss-eap-6.3\modules,C:\Users\Public\DesenvolvimentoJava\jboss-eap-6.3\modules\system\layers\base))]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:447) [jboss-modules.jar:1.3.3.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:414) [jboss-modules.jar:1.3.3.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]
    ... 8 more

如何解决它?

似乎com/ZeroTurnound/javarebel/BP类在编译时可用,但在运行时不可用。我没有使用JRebel的经验,但据我所知,它在很大程度上是一种“热部署”工具。我不明白为什么编译后的源代码需要JRebel JAR


但是,如果在运行时确实需要它,如果您使用的是构建工具,那么您可以修改依赖范围,以便将jar包含在可部署的包中。否则,您可以在JBoss的运行时包含jar,这样做的潜在缺点是,如果在编译时使用的jar版本发生了更改,您可能会再次遇到其他错误。

将jRebel添加到JBOSS类PATN。确保jRebel通过单个
agentpath
参数附加,并且您没有手动将任何jRebel jar包含到JBOSS类路径或webapp库中。如果这没有帮助,请转到eclipse
help->JRebel->提交支持票证
,并确保包含JRebel.log。你将得到一个解决方案。将JRebel的jar依赖项添加到类路径是一个坏主意,而且完全没有必要,因为JRebel的代理本身负责确保类路径中存在正确的类。这个问题与JRebel本身有关,应该向他们的支持者报告。@Tiit感谢他们的评论,尽管反对票太多了。我清楚地指出,据我所知,在运行时最有可能不需要JRebel JAR。