首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在EAR项目中部署EJB项目和JPA项目

如何在EAR项目中部署EJB项目和JPA项目
EN

Stack Overflow用户
提问于 2014-11-14 11:55:41
回答 3查看 2.6K关注 0票数 0

我创建了两个项目,一个是EJB,另一个是JPA。JPA项目定义实体类和persistent.xml。EBJ项目导入JPA项目,定义EJB会话bean通过实体管理器连接数据库。有关详细信息,请参阅下图。但是当在Jboss 7上运行时,出现了错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
03:23:59,546 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.subunit."TestApps.ear"."TestEJB.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."TestApps.ear"."TestEJB.jar".POST_MODULE: Failed to p
rocess phase POST_MODULE of subdeployment "TestEJB.jar" of deployment "TestApps.ear"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [rt.jar:1.6.0_22]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.6.0_22]
        at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_22]
Caused by: java.lang.RuntimeException: Error getting reflective information for class com.ejb.services.LotUpdatManagerBean with ClassLoader ModuleClassLoader for Module "deployment.TestApps.ear.TestEJB.jar:main" from Service Module Loader
        at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
        at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:85)
        at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:70)
        at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:55)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        ... 5 more
Caused by: java.lang.NoClassDefFoundError: com/test/model/LotUpdates
        at java.lang.Class.getDeclaredMethods0(Native Method) [rt.jar:1.6.0_22]
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source) [rt.jar:1.6.0_22]
        at java.lang.Class.getDeclaredMethods(Unknown Source) [rt.jar:1.6.0_22]
        at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:65) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        ... 10 more
Caused by: java.lang.ClassNotFoundException: com.test.model.LotUpdates from [Module "deployment.TestApps.ear.TestEJB.jar:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
        ... 15 more

03:23:59,762 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "TestApps.ear" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"TestApps.ear\".\"TestEJB.jar\".POST_MODULE" => "org.jboss.msc.service.StartExce
ption in service jboss.deployment.subunit.\"TestApps.ear\".\"TestEJB.jar\".POST_MODULE: Failed to process phase POST_MODULE of subdeployment \"TestEJB.jar\" of deployment \"TestApps.ear\""}}
03:23:59,765 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment TestEJB.jar in 2ms
03:23:59,767 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment TestApps.ear in 4ms
03:23:59,768 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.deployment.subunit."TestApps.ear"."TestEJB.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."TestApps.ear"."TestEJB.jar".POST_MODULE: Failed to process phase POST_MODULE of subdeployment "TestE
JB.jar" of deployment "TestApps.ear"

我失败了。任何人都可以纠正我,告诉我部署的方法(jpa项目和ejb项目在同一个ear中)。

EN

回答 3

Stack Overflow用户

发布于 2014-11-14 13:46:56

您有两种可能的选择:

ejb

  • 如果TestJpa.jarear\lib文件夹中,则默认情况下它在EJB模块中应该是可见的(确保EAR在EJB项目中通过6.0 Deployment Assembly添加,JPA项目-应该会导致EJB模块的清单文件发生更改。

如果您正确地配置了它,那么无论使用哪种方法,您都应该在Eclipse的EJB Module > EAR Libraries中看到JPA项目,而不需要将它作为项目添加到构建路径中

票数 1
EN

Stack Overflow用户

发布于 2014-11-14 13:46:39

作为我们在评论中讨论的后续内容,我提供了这个“答案”,作为可能出错的第一个钩子。

关于EAR结构包类型EAR、WAR和JAR的结构定义良好,必须遵循这些定义才能生成稍后将在JBoss等应用服务器上运行的企业存档(EAR)。

您将在https://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html下找到所有必需的打包信息(请注意,这是针对JavaEE6的)。

基本上,这就是我要走的路,我不能再帮你更多了:

但根据评论中的要求,我将尝试指出一些特别重要的点,根据上面的打包约定,链接会发生,并且必须绝对正确(我可以马上告诉您,我们的JPA模块也位于lib-文件夹中)。

因此,如果我打开我们的一个(工作的)耳朵,我会看到里面有以下内容:

  • lib
  • META-INF
  • our-ejb-part.jar
  • our-website-application.war
  • our-webservice-application.war

例如,我们的ejb-part.jar根本不包含任何Java代码。但是,它包含一个带有描述符(如ejb-jar.xml )的META-INF文件夹,以及properties文件夹下的一些属性文件。它还定义了MANIFEST.MF.中的类路径(我已经多年没有使用过JBoss了--我们目前使用的是IBM Websphere,因此在META-INF文件夹中也有-bnd.xml/-ext.xml部署描述符...我不知道Jboss是否需要类似的部署信息)。这里没什么可看的了。

暂时忘记这两个web模块--您似乎没有任何.war文件形式的web部件(该文件本身必须遵循oracle文档中定义的特定包要求)。

但是请注意,如果您有任何EJB-或WEB-Modules,它们必须列在META-INF文件中的application.xml文件中(不是ejb的META-INF文件夹,而是与/lib/our-ejb-part.jar等位于同一级别的EAR的META-INF文件夹中)。还要注意,在META-INF目录中,我们同样有两个Websphere部署描述符和一个空的MANIFEST.MF)。

最后,我们有一个包含所有EAR-Dependencies (和大多数Web-Part依赖项)的lib文件夹。这是我们保存JPA、Commons、服务、服务实现等组件模块的位置(而不是将它们放在ejb-part.jar中……但我不能考虑这是否是一个好的实践)。

因此,回到您的情况,可能会有很多地方出错-我建议您添加最终*.ear文件内容的打印屏幕,而不是上面的eclipse视图,这样可能会得到进一步的建议。eclipse视图的主要问题是,至少我不知道最终的.ear文件到底是什么样子(例如,只有WEB-INF文件夹的application.xml位于EAR Content下。

很抱歉,我不会在这里提供帮助,因为我没有任何JBoss知识(日志可能暗示了比我能解释的更详细的层次上的错误…我现在只知道您的EAR可能不会包含类LotUpdates,或者它可能在那里,但没有正确地添加到类路径中)

票数 0
EN

Stack Overflow用户

发布于 2014-11-14 16:24:00

我在Ubuntu上用eclipse也做了同样的事情。EAR文件包含ejb.jar和jpa.jar,jpa.jar在*.ear/lib/中。Jboss 7可以部署耳塞。我认为根本原因是jpa类是用jpa.jar构建和打包的,这样ejb.jar就可以加载它的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26929483

复制
相关文章
在idea中创建web项目_idea部署web项目
这个时候给项目命名,我在这里命名为java_web,下面那个可以更改项目存放的路径,我这里放到自定的路径,点击Finish。
全栈程序员站长
2022/08/02
1.6K0
在idea中创建web项目_idea部署web项目
如何在云开发部署React项目
React是目前比较火的前端框架之一,除了可以在自有服务器、Github Pages 部署以外,现在你有了一个新的选择,那就是使用云开发静态网站功能来进行部署。
腾讯云开发TCB
2020/04/13
2.5K0
Python项目部署-使用Nginx部署Django项目
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.6K0
Python项目部署-使用Nginx部署Django项目
部署Java项目(Ⅰ)
一、准备私有仓库 之前我所分享到的算是认识Jenkins的各种功能,也算是搭建了一个简单的PHP项目,但是随着这几年JAVA的风生水起,占据了大部分的市场,所以从现在开始分享我把我测试搭建Java项目
老七Linux
2018/05/31
1.7K0
部署Java项目(Ⅱ)
一、安装插件 系统管理 -> 管理插件,检查是否已经安装 Maven Integration plugin 和 Deploy to container Plugin,若没有安装则需要安装这两个插件。
老七Linux
2018/05/31
1.8K0
部署django项目
安装python 依赖组件 sudo apt-get install build-essential autoconf \ libtool pkg-config python-opengl python-imaging \ python-pyrex python-pyside.qtopengl idle-python2.7 \ qt4-dev-tools qt4-designer libqtgui4 libqtcore4 \ libqt4-xml libqt4-test libqt4-script libq
超级大猪
2019/11/22
1.3K0
项目部署
时隔几个月,终于还是把博客项目部署上来了,拖延症一上来就收不住啊。 部署的时候遇到过几个问题:
云边小卖部
2022/12/02
3960
Docker部署项目
Part1文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 Part2今日主题:Docker部署项目 我用自己的话简单介绍docker是个什么东西吧,可能不太准确。Doker就是一个可以将项目和环境打包成一个镜像的玩意。镜像是什么,就是一个名词,只是别人总喜欢把一些东西搞得很高级而已。 正常来说,我们部署一个项目需要将自己项目的war包或者jar包,放到服务器上,然后安装对应的环境软件:jdk、redis、nginx等等。只要我们每换一个服务器都需要安装这些玩意,是非常的麻烦,docker
java后端指南
2021/09/09
2.2K1
Docker部署项目
spring boot 项目如何在 linux 上部署启动?
待完善。以下方法基于:CentOS Linux release 7.2.1511 (Core) 1打包部署,在spring boot 项目中 添加打包插件依赖
爱明依
2019/03/12
1.6K0
如何在静态网站托管中部署React项目
React是目前比较火的前端框架之一,除了可以在自有服务器、Github Pages部署以外,现在你有了一个新的选择,那就是使用云开发静态网站功能来进行部署。
腾讯云开发TCB
2020/06/03
3.3K0
部署上线-部署Django项目
启动命令:python manage.py runserver 0.0.0.0:8000
星哥玩云
2022/09/14
1.5K0
部署上线-部署Django项目
springbot项目中MyBatis结合JPA排错
这里面的错误,我心想这个查询语句不会有错吧!写过这些多基础的东西,这个都会错那估计呀自刎以谢天下了。于是我就把项目更新重启了一下,结果还是报一样的错,没办法,没法相信自己了,跟着代码一步步的进去。
技术从心
2019/08/06
4900
springbot项目中MyBatis结合JPA排错
springboot支付项目之springboot集成jpa
我们遵从MVC三层模式,DAO层设计与开发、Service层设计与开发以及Controller层。
凯哥Java
2019/09/20
8530
springboot支付项目之springboot集成jpa
springboot支付项目之springboot集成jpa
我们遵从MVC三层模式,DAO层设计与开发、Service层设计与开发以及Controller层。
凯哥Java
2022/12/15
6540
springboot支付项目之springboot集成jpa
21.多端项目上线部署(3)部署前端项目newpc
在newpc目录下,将node_modules目录删除,然后将newpc项目打包为zip包
玩蛇的胖纸
2020/07/07
7130
JavaEE - JPA(2):EJB中的事务管理
对于任何一个需要持久化数据的应用而言,事务划分(Transaction Demarcation)的规划都是非常重要的一环。如果规划的不好,轻则影响性能,重则会导致在某些情况下数据发生不一致,从而严重影响业务逻辑的顺利进行。
java干货
2021/02/17
9330
Java EE7和Maven工程入门(4)
1.一个web maven模块(war) 2.一个支持无状态会话beans的ejb模块(EJB3.1) 3.支持实体beans的ejb模块(JPA2)
哲洛不闹
2018/09/18
8840
Java EE7和Maven工程入门(4)
部署Spring Boot项目
之前在新建Spring Boot项目[1]使用mvn install的方式,已经构建出jar包。
fliter
2023/09/23
2930
部署Spring Boot项目
Django 项目部署
  按照 Django 官方文档的指引,我们已经做好了一个投票应用。我们是在本地开发的,项目最终上线是要部署到服务器上的,本篇笔记记录了我个人部署的整个过程,仅供参考。
小孙同学
2022/01/17
2.6K0
Django 项目部署
Docker部署web项目
  docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
程序员云帆哥
2022/05/12
1.9K0
Docker部署web项目

相似问题

如何使用JPA、EJB和CDI元素创建JBoss EAR项目

23

如何在ibm bluemix中部署包含ejb、war和ear maven项目

10

Eclipse中的JPA项目和EJB项目有什么不同?

30

eclipse中的两个不同项目:(JPA & EJB)在EAR项目中(CDI问题)

37

分级部署项目到ear

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文