1

1つのリモートStatelessSessionBeanを作成し、SpringBeanをUserServiceImplEJBに挿入したいと思います。

@Stateless

@Interceptors(SpringBeanAutowiringInterceptor.class)

public class UserServiceImpl implements IUserService{


    @Autowired

    IRegisterService registerService; 

ドキュメントに従って、SpringBean構成のエントリを持つクラスパスにbeanRefContext.xmlを追加しました。

私の問題は、このEJBをなし@Interceptors(SpringBeanAutowiringInterceptor.class)でデプロイしようとすると、Spring Beanの注入なしでデプロイされ、期待どおりに実行されることです。

しかし、Beanを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

誰かがこの問題を経験し、それに対する解決策を持っていますか?

4

1 に答える 1

0

この例外が発生する理由は正確にわかっています。これは JDK バグJDK-7183985が原因です。根本的な問題は、コンテナが読み込めない可能性がありますSpringBeanAutowiringInterceptor。これは、アプリケーションのパッケージングの問題である可能性があります。アプリケーションをパッケージ化する方法と、Spring をアプリケーションにパッケージ化する方法について詳しく説明してください。

于 2014-10-22T17:16:00.020 に答える