Maven mvn jboss:部署失败,出现NoClassDefFoundError

Maven mvn jboss:部署失败,出现NoClassDefFoundError,maven,deployment,jboss,maven-plugin,noclassdeffounderror,Maven,Deployment,Jboss,Maven Plugin,Noclassdeffounderror,当使用JBoss Maven Plugin将EJB项目部署到JBoss时,我在JBoss的控制台上得到一个NoClassDefFoundError,该类位于该EJB项目的一个依赖项中 此依赖项是用编译范围声明的。我是否应该使用另一个作用域,以便将依赖项也部署到JBoss?或者我应该如何解决这个问题 错误如下所示: DEPLOYMENTS IN ERROR: Deployment "vfszip:/Users/hordine/projects/SoftBudget/soft-budget-ej

当使用JBoss Maven Plugin将EJB项目部署到JBoss时,我在JBoss的控制台上得到一个NoClassDefFoundError,该类位于该EJB项目的一个依赖项中

此依赖项是用编译范围声明的。我是否应该使用另一个作用域,以便将依赖项也部署到JBoss?或者我应该如何解决这个问题

错误如下所示:

DEPLOYMENTS IN ERROR:
  Deployment "vfszip:/Users/hordine/projects/SoftBudget/soft-budget-ejb/target/soft-budget-ejb.jar/" is in error due to the following reason(s): java.lang.NoClassDefFoundError: br/com/pedra/j2eepatterns/facade/IEntityService

我知道您已经将EJB打包为jar文件。这意味着没有提供任何与独立jar相同的依赖项

此外,可能有以下3种可能的方法:-

  • 将它们打包为
    ear
    并将这些依赖项放入
    ear/lib
    中。有关更多信息,请参阅

  • 将它们打包为
    war
    ,并将这些依赖项放入
    WEB-INF/lib
    中。有关更多信息,请参阅

  • 将它们打包为一个
    jar
    ,并将这些依赖项放在
    类路径
    应用服务器库
    中。请参阅您的应用程序服务器文档

  • 编辑: 如果您使用的是
    javaee6
    ,则可以将
    EJB
    打包为
    war
    文件。警察告诉我们

    企业bean通常提供web应用程序的业务逻辑。在这些情况下,将企业bean打包到web应用程序的WAR模块中可以简化部署和应用程序组织。企业bean可以作为Java编程语言类文件打包在WAR模块中,也可以打包在打包在WAR模块中的JAR文件中

    要在
    WAR模块中包含
    enterprisebean
    类文件,类文件应位于
    WEB-INF/classes
    目录中

    要在
    WAR模块
    中包含包含
    enterprisebean
    JAR文件
    JAR
    添加到WAR模块的
    WEB-INF/lib
    目录中

    包含企业bean的WAR模块不需要
    ejbjar.xml
    部署描述符如果应用程序使用
    ejb jar.xml
    ,则它必须位于
    WAR
    模块的
    WEB-INF
    目录中


    我希望这会有所帮助。

    您的ejb包是什么?罐子,战争还是耳朵?就像罐子一样。我不想通过将依赖项复制到服务器lib文件夹来单独部署依赖项,这是可能的吗?我将它们打包为一个jar,是的。谢谢您的选择,但我不想在EAR中部署它,我认为您不能将EJB打包为WAR。(你也可以)。我想将它们部署为Jar。我担心我必须单独部署依赖项,是的。我投了你一票,但是让我们看看是否有其他人有更好的主意。如果你使用JavaEE6,可以将
    EJB
    打包为
    war
    。请参阅我的编辑以了解更多信息。感谢所有的信息,很高兴知道所有这些,但我正在使用JBoss5和JavaEE5。