2012-12-18 180 views
1

我创建了一个Remote StatelessSession Bean,我想将Spring bean注入到我的UserServiceImpl EJB中。向EJB3注入Spring bean

@Stateless 

@Interceptors(SpringBeanAutowiringInterceptor.class) 

public class UserServiceImpl implements IUserService{ 


    @Autowired 

    IRegisterService registerService; 

根据文档,我已经将beanRefContext.xml添加到具有spring bean配置条目的classpath中。

我的问题是,当我试图部署这个EJB没有@Interceptors(SpringBeanAutowiringInterceptor.class),它被部署并按预期运行,没有春天的注入。

但是,当我注入豆成EJB部署失败,以下情况除外:

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(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_29] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_29] 
     at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_29] 

Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 
     at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653) [rt.jar:1.6.0_29] 
     at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460) [rt.jar:1.6.0_29] 
     at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286) [rt.jar:1.6.0_29] 
     at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222) [rt.jar:1.6.0_29] 
     at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) [rt.jar:1.6.0_29] 
     at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) [rt.jar:1.6.0_29] 
     at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070) [rt.jar:1.6.0_29] 
     at java.lang.Class.getAnnotation(Class.java:3029) [rt.jar:1.6.0_29] 
     at org.jboss.as.ejb3.deployment.processors.BusinessViewAnnotationProcessor.getRemoteBusinessInterfaces(BusinessViewAnnotationProcessor.java:150) 
     at org.jboss.as.ejb3.deployment.processors.BusinessViewAnnotationProcessor.processViewAnnotations(BusinessViewAnnotationProcessor.java:123) 
     at org.jboss.as.ejb3.deployment.processors.BusinessViewAnnotationProcessor.deploy(BusinessViewAnnotationProcessor.java:98) 


     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 

有没有人遇到过这个问题,有这方面的解决方案?

回答

0

我确切地知道为什么会发生这种异常,这是由JDK错误JDK-7183985引起的。潜在的问题可能是您的容器无法加载SpringBeanAutowiringInterceptor。这可能是您的应用程序中的包装问题。请提供更多关于如何打包应用程序以及如何在应用程序中打包Spring的详细信息。