【问题标题】:Error java.lang.NoClassDefFoundError: com/zeroturnaround/javarebel/BP错误 java.lang.NoClassDefFoundError: com/zeroturnaround/javarebel/BP
【发布时间】:2017-11-30 20:27:05
【问题描述】:

我在使用 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

我该如何解决?

【问题讨论】:

  • 将 jRebel 添加到 JBOSS 类模式中。
  • 确保 JRebel 通过单个 agentpath 参数附加,并且您没有手动将任何 jrebel jar 包含到 jboss 类路径或 webapp 库中。如果这没有帮助,请转到 eclipse Help->JRebel->Submit a Support Ticket 并确保包含 jrebel.log。您将在那里获得解决方案。

标签: java jrebel


【解决方案1】:

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

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

【讨论】:

  • 将 JRebel 的 jar 依赖项添加到类路径是一个坏主意,而且完全没有必要,因为 JRebel 的代理本身负责确保类路径中存在正确的类。问题出在 JRebel 本身,应报告给他们的支持人员。
  • @Tiit 感谢您的评论,尽管反对票过多。我明确表示,据我所知,运行时很可能不需要 JRebel jar。
猜你喜欢
  • 2021-02-09
  • 2018-11-10
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
  • 2015-10-12
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多