在站点CDI sample中创建了一个带有CDI的示例项目,但在Jboss 6中尝试部署它时,出现以下错误。是否需要包含任何其他lib文件来解决此问题?
Lib jars:
javaee-api-7.0.jar
javax.inject-1.jar
Deployment Error:
2015-02-12 12:25:21,852 INFO [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[192.168.10.119:61928]) and supplies:
2015-02-12 12:25:21,852 INFO [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[192.168.10.119:61928]) jndi:HelloObserver
2015-02-12 12:25:21,852 INFO [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[192.168.10.119:61928]) Added bean(jboss.j2ee:ear=J2eeObserver.ear,jar=J2eeObserver-ejb.jar,name=HelloObserver,service=EJB3) to KernelDeployment of: J2eeObserver-ejb.jar
2015-02-12 12:25:22,048 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (WorkerThread#0[192.168.10.119:61928]) Error installing to Create: name=vfs:///E:/jboss-6.1.0.Final/server/default/deploy/J2eeObserver.ear_WeldBootstrapBean state=Configured: java.lang.NullPointerException
at org.jboss.weld.util.ApiAbstraction.annotationTypeForName(ApiAbstraction.java:86) [:6.1.0.Final]
at org.jboss.weld.ejb.EJBApiAbstraction.<init>(EJBApiAbstraction.java:36) [:6.1.0.Final]
at org.jboss.weld.bootstrap.BeanDeployment.<init>(BeanDeployment.java:100) [:6.1.0.Final]
at org.jboss.weld.bootstrap.WeldBootstrap$DeploymentVisitor.visit(WeldBootstrap.java:185) [:6.1.0.Final]
at org.jboss.weld.bootstrap.WeldBootstrap$DeploymentVisitor.visit(WeldBootstrap.java:197) [:6.1.0.Final]
......
2015-02-12 12:25:22,074 WARN [org.jboss.profileservice.management.upload.remoting.DeployHandler] (WorkerThread#0[192.168.10.119:61928]) Failed to complete command: [start] for deployment: names=[J2eeObserver.ear]: org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
DEPLOYMENTS MISSING DEPENDENCIES:
Deployment "jboss-injector:topLevelUnit=J2eeObserver.ear,unit=J2eeObserver-ejb.jar,bean=HelloObserver,interceptor=org.jboss.weld.integration.ejb.SessionBeanInterceptor" is missing the following dependencies:
Dependency "<UNKNOWN jboss-injector:topLevelUnit=J2eeObserver.ear,unit=J2eeObserver-ejb.jar,bean=HelloObserver,interceptor=org.jboss.weld.integration.ejb.SessionBeanInterceptor>" (should be in state "Installed", but is actually in state "** UNRESOLVED Demands 'jboss-switchboard:appName=J2eeObserver,module=J2eeObserver-ejb,name=HelloObserver' **")
我想你使用的是JBoss EAP6而不是JBoss AS6(EAP6对应的社区版本是JBossAS7.1.1)。所以你的编程模型是Java EE 6而不是7。因此,您应该使用java-ee-6.jar
进行编译,但不要将其包含在部署中:服务器提供了它。您不需要注入lib。
使用paramter启动Jboss AS 6时,问题已解决run -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true