在JBoss 7.1.1下将EJB注入到Web java类中

时间:2012-11-21 21:34:16

标签: jboss ejb resteasy

我正在尝试使用JBoss 7.1.1和RESTeasy构建一个网站。我已经设法构建和部署了EAR,其中包含WAR和EJB-JAR:

voyager-app.ear 
  META-INF/MANIFEST.MF
  META-INF/application.xml
  META-INF/jboss-app.xml
  lib/voyager-lib.jar
  voyager-adm.war
  voyager-ejb.jar
  voyager-web.war

到目前为止事情很简单。 voyager-adm.war& voyager-lib.jar是空的(只是清单文件),但我知道我很快就会为它们编写代码。 EJB jar文件中只有一个有状态EJB - HarbourMasterBean(只有一个本地接口)和一些数据库实体Bean:

voyager-app.ear META-INF/MANIFEST.MF META-INF/application.xml META-INF/jboss-app.xml lib/voyager-lib.jar voyager-adm.war voyager-ejb.jar voyager-web.war

据我所知,EJB可以正确部署,因为创建了数据库单元并且日志显示了某些HarbourMaster引用的发布:

voyager-ejb.jar 
  META-INF/MANIFEST.MF
  META-INF/persistence.xml
  com/nutrastat/voyager/db/HarbourMasterBean.class
  com/nutrastat/voyager/db/HarbourMasterLocal.class
  com/nutrastat/voyager/db/PortEntity.class
  com/nutrastat/voyager/db/ShipEntity.class

voyager-ejb.jar META-INF/MANIFEST.MF META-INF/persistence.xml com/nutrastat/voyager/db/HarbourMasterBean.class com/nutrastat/voyager/db/HarbourMasterLocal.class com/nutrastat/voyager/db/PortEntity.class com/nutrastat/voyager/db/ShipEntity.class

问题在于将HarbourMaster EJB注入我的web bean。无论我尝试什么,对它的引用都是空的。

java:global/voyager-app/voyager-ejb/harbour-master!com.nutrastat.voyager.db.HarbourMasterLocal
java:app/voyager-ejb/harbour-master!com.nutrastat.voyager.db.HarbourMasterLocal
java:module/harbour-master!com.nutrastat.voyager.db.HarbourMasterLocal
java:global/voyager-app/voyager-ejb/harbour-master
java:app/voyager-ejb/harbour-master
java:module/harbour-master

Ships.java:

java:global/voyager-app/voyager-ejb/harbour-master!com.nutrastat.voyager.db.HarbourMasterLocal java:app/voyager-ejb/harbour-master!com.nutrastat.voyager.db.HarbourMasterLocal java:module/harbour-master!com.nutrastat.voyager.db.HarbourMasterLocal java:global/voyager-app/voyager-ejb/harbour-master java:app/voyager-ejb/harbour-master java:module/harbour-master

voyager-web.war 
  META-INF/MANIFEST.MF
  WEB-INF/web.xml
  WEB-INF/classes/com/nutrastat/voyager/web/
  WEB-INF/classes/com/nutrastat/voyager/web/Ships.class
  WEB-INF/classes/com/nutrastat/voyager/web/VoyagerApplication.class

voyager-web.war META-INF/MANIFEST.MF WEB-INF/web.xml WEB-INF/classes/com/nutrastat/voyager/web/ WEB-INF/classes/com/nutrastat/voyager/web/Ships.class WEB-INF/classes/com/nutrastat/voyager/web/VoyagerApplication.class

我一直在网上寻找答案并阅读了很多地方,包括StackOverflow和其他可以做到的地方,以及问题在于配置。但是他们只发布了片段,我不确定我是否正确地做事。

非常感谢您提供的任何帮助。

Dobbo

1 个答案:

答案 0 :(得分:0)

如果您这样做会发生什么:

@Path("fleet")
@Singleton
public class Ships {