Dependency injection Jboss AS 7-依赖项注入
我试图在JBossAS7中使用依赖注入,我遇到了巨大的困难 我已经设置了一个EAR,它包含一个EJBJAR和一个war war包含一个richfaces web应用程序 我试图将EJB从EJB jar注入faces管理的bean,代码如下:Dependency injection Jboss AS 7-依赖项注入,dependency-injection,ejb,ejb-3.0,jboss7.x,Dependency Injection,Ejb,Ejb 3.0,Jboss7.x,我试图在JBossAS7中使用依赖注入,我遇到了巨大的困难 我已经设置了一个EAR,它包含一个EJBJAR和一个war war包含一个richfaces web应用程序 我试图将EJB从EJB jar注入faces管理的bean,代码如下: public class UserController { @EJB(mappedName="UserService") private UserFacadeService userService; public String
public class UserController {
@EJB(mappedName="UserService")
private UserFacadeService userService;
public String getService(){
if(userService == null){
但是,当我部署jboss时,会将错误放在控制台中:
rolled back with failure message {"Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"GoodByeJohnEAR.ear\".\"GoodByeJohnWeb-1.0-SNAPSHOT.war\".component.\"managed-bean.za.co.gbj.UserController\".START missing [ jboss.naming.context.java.module.GoodByeJohnEAR.\"GoodByeJohnWeb-1.0-SNAPSHOT\".\"env/za.co.gbj.UserController/userService\" ]","jboss.deployment.subunit.\"GoodByeJohnEAR.ear\".\"GoodByeJohnWeb-1.0-SNAPSHOT.war\".jndiDependencyService missing [ jboss.naming.context.java.module.GoodByeJohnEAR.\"GoodByeJohnWeb-1.0-SNAPSHOT\".\"env/za.co.gbj.UserController/userService\" ]","jboss.naming.context.java.module.GoodByeJohnEAR.\"GoodByeJohnWeb-1.0-SNAPSHOT\".\"env/za.co.gbj.UserController/userService\".jboss.deployment.subunit.\"GoodByeJohnEAR.ear\".\"GoodByeJohnWeb-1.0-SNAPSHOT.war\".module.GoodByeJohnEAR.\"GoodByeJohnWeb-1.0-SNAPSHOT\".2 missing [ jboss.naming.context.java.module.GoodByeJohnEAR.\"GoodByeJohnWeb-1.0-SNAPSHOT\".env/UserService ]"]}
09:03:50,576 INFO [org.jboss.as.server.deployment] (MSC service thread 1-8) Starting deployment of "GoodByeJohnEAR.ear"
09:03:50,670 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) Starting deployment of "GoodByeJohnWeb-1.0-SNAPSHOT.war"
09:03:50,670 INFO [org.jboss.as.server.deployment] (MSC service thread 1-8) Starting deployment of "GoodByeJohnEJB-1.0-SNAPSHOT.jar"
09:03:51,367 WARN [org.jboss.as.server.deployment.service-loader] (MSC service thread 1-2) Encountered invalid class name "com.sun.faces.vendor.Tomcat6InjectionProvider:org.apache.catalina.util.DefaultAnnotationProcessor" for service type "com.sun.faces.spi.injectionprovider"
09:03:51,367 WARN [org.jboss.as.server.deployment.service-loader] (MSC service thread 1-2) Encountered invalid class name "com.sun.faces.vendor.Jetty6InjectionProvider:org.mortbay.jetty.plus.annotation.InjectionCollection" for service type "com.sun.faces.spi.injectionprovider"
09:03:51,375 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-8) JNDI bindings for session bean named UserFacadeBean in deployment unit subdeployment "GoodByeJohnEJB-1.0-SNAPSHOT.jar" of deployment "GoodByeJohnEAR.ear" are as follows:
java:global/GoodByeJohnEAR/GoodByeJohnEJB-1.0-SNAPSHOT/UserFacadeBean!za.co.gbj.UserFacadeService
java:app/GoodByeJohnEJB-1.0-SNAPSHOT/UserFacadeBean!za.co.gbj.UserFacadeService
java:module/UserFacadeBean!za.co.gbj.UserFacadeService
java:global/GoodByeJohnEAR/GoodByeJohnEJB-1.0-SNAPSHOT/UserFacadeBean
java:app/GoodByeJohnEJB-1.0-SNAPSHOT/UserFacadeBean
java:module/UserFacadeBean
09:03:51,406 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named UserFacadeBean in deployment unit subdeployment "GoodByeJohnWeb-1.0-SNAPSHOT.war" of deployment "GoodByeJohnEAR.ear" are as follows:
java:global/GoodByeJohnEAR/GoodByeJohnWeb-1.0-SNAPSHOT/UserFacadeBean!za.co.gbj.UserFacadeService
java:app/GoodByeJohnWeb-1.0-SNAPSHOT/UserFacadeBean!za.co.gbj.UserFacadeService
java:module/UserFacadeBean!za.co.gbj.UserFacadeService
java:global/GoodByeJohnEAR/GoodByeJohnWeb-1.0-SNAPSHOT/UserFacadeBean
java:app/GoodByeJohnWeb-1.0-SNAPSHOT/UserFacadeBean
java:module/UserFacadeBean
09:03:51,577 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 1) Service status report
New missing/unsatisfied dependencies:
service jboss.naming.context.java.module.GoodByeJohnEAR."GoodByeJohnWeb-1.0-SNAPSHOT".env/UserService (missing)
service jboss.naming.context.java.module.GoodByeJohnEAR."GoodByeJohnWeb-1.0-SNAPSHOT"."env/za.co.gbj.UserController/userService" (missing)
请协助 问题可能在于WAR没有定义对EJB jar的依赖关系。如果没有,最好为EJB jar文件定义WAR的META-INF/MANIFEST.MF类路径条目 您可能还需要检查配置文件,并确保
标记设置为false
<subsystem xmlns="urn:jboss:domain:ee:1.0" >
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
</subsystem>
假的
上还有一些不错的文档。看起来问题可能是WAR没有定义对EJB jar的依赖关系。如果没有,最好为EJB jar文件定义WAR的META-INF/MANIFEST.MF类路径条目 您可能还需要检查配置文件,并确保
标记设置为false
<subsystem xmlns="urn:jboss:domain:ee:1.0" >
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
</subsystem>
假的
还有一些不错的文档。首先,确保在您的war中有文件META-INF/MANIFEST.MF,并且有行类路径:GoodByeJohnEJB-1.0-SNAPSHOT.jar 然后在UserController类中,尝试删除mappedName,只添加EJB注释 或者,您可以使用以下选项:
InitialContext ic = new InitialContext();
UserFacadeService userService = (UserFacadeService )ic.lookup("java:global/GoodByeJohnEAR/GoodByeJohnEJB-1.0-SNAPSHOT/UserFacadeBean");
首先,确保在您的war中,您有文件META-INF/MANIFEST.MF,并且有一行类路径:GoodByeJohnEJB-1.0-SNAPSHOT.jar 然后在UserController类中,尝试删除mappedName,只添加EJB注释 或者,您可以使用以下选项:
InitialContext ic = new InitialContext();
UserFacadeService userService = (UserFacadeService )ic.lookup("java:global/GoodByeJohnEAR/GoodByeJohnEJB-1.0-SNAPSHOT/UserFacadeBean");
您是从IDE运行它吗?如果是,则展开服务器twistie并查看它们是否都已实际部署。似乎war文件不在那里。另外,当您启动服务器时,何时会出现此错误?您能否提供有关
UserFacadeService
和UserFacadeBean
注释的更多信息?您是否从IDE运行它?如果是,则展开服务器twistie并查看它们是否都已实际部署。似乎war文件不在那里。另外,当您启动服务器时,何时会出现此错误?您能否提供有关UserFacadeService
和UserFacadeBean
注释的更多信息?