如何创建 Java EE 容器可部署 JAR?
How do I create a Java EE container deployable JAR?
我有一个用作独立批处理的主项目,我想使用 EJB 计时器(使用 WildFly 8.2)将其移动到容器中。我想用定时器 class 和 WEB-INF/lib 的依赖项构建一个 WAR 文件,但听起来不是一个优雅的解决方案,因为它不是网络应用程序,它不需要绑定上下文。它只是一个 JAR,里面有一个 EJB 和依赖项(我使用的是一个胖 jar),但是当我部署它时容器会抛出一个错误。我应该使用 EAR 吗?或者你们认为 WAR 文件可以吗?
PS: 我正在使用 Maven,所以可能的建议可以考虑它。
如果它不是 Web 应用程序,您实际上并不需要在 WAR 文件中使用它,尽管它没有害处。我也会把它放在一个 JAR 文件中,我不喜欢添加一些没有意义的东西……这可能会让其他人感到困惑。但正如@Bruno César 指出的那样,您首先需要 package EJB。看看this;您将看到将它们打包为 JAR、WAR、EAR 的方法。
如果您的独立应用程序没有任何第三方库,EJB 包是一个很好的解决方案。但如果有,那么最好的解决方案是 EAR 包类型。
我有一个用作独立批处理的主项目,我想使用 EJB 计时器(使用 WildFly 8.2)将其移动到容器中。我想用定时器 class 和 WEB-INF/lib 的依赖项构建一个 WAR 文件,但听起来不是一个优雅的解决方案,因为它不是网络应用程序,它不需要绑定上下文。它只是一个 JAR,里面有一个 EJB 和依赖项(我使用的是一个胖 jar),但是当我部署它时容器会抛出一个错误。我应该使用 EAR 吗?或者你们认为 WAR 文件可以吗? PS: 我正在使用 Maven,所以可能的建议可以考虑它。
如果它不是 Web 应用程序,您实际上并不需要在 WAR 文件中使用它,尽管它没有害处。我也会把它放在一个 JAR 文件中,我不喜欢添加一些没有意义的东西……这可能会让其他人感到困惑。但正如@Bruno César 指出的那样,您首先需要 package EJB。看看this;您将看到将它们打包为 JAR、WAR、EAR 的方法。
如果您的独立应用程序没有任何第三方库,EJB 包是一个很好的解决方案。但如果有,那么最好的解决方案是 EAR 包类型。