NullPointerException, когда я пытаюсь внедрить SessionContextImpl в wildfly 9.0.2

Я перемещаю приложение jboss 5.1.0 GA в Wildfly 9.0.2, в котором я управляю EJB, в bean-компоненте без состояния EJBContext был введен таким образом в jboss 5, и он работает:

import javax.ejb.EJBContext;

@Stateless
@SecurityDomain (SystemSetting.SECURITY_DOMAIN)
@PermitAll
public class SystemServiceBean implements SystemServiceLocal {

@Resource
EjbContext ctx;

Затем он был использован в этом методе

private Principal getCallerPrincipal () {
        try {         
            return SecurityUtil.getCallerPrincipal (ctx, (Subject) PolicyContext.getContext ("javax.security.auth.Subject.container"));
         PolicyContext.getContext ("javax.security.auth.Subject.container"));
        } catch (PolicyContextException e) {
            e.printStackTrace ();
        }
        return ctx.getCallerPrincipal ();
    }

позже основной пытался вернуть этим методом

public class SecurityUtil {
    public static Principal getCallerPrincipal (EJBContext ctx, Subject subject) {
        try {
            if (subject! = null) {
                Set <Group> subjectGroups = subject.getPrincipals (Group.class);
                Iterator <Group> iter = subjectGroups.iterator ();
                while (iter.hasNext ()) {
                    Group group = iter.next ();
                    String name = group.getName ();
                    if (name.equals ("CallerPrincipal")) {
                        Enumeration <? extends Home> members = group.members ();
                        if (members.hasMoreElements ()) {

                            Main principal = (Main) members.nextElement ();
                            return principal;

                        }
                    }
                }
            }

        } catch (Exception e) {
            System.out.println ("============================= catch:");
            Logger.getLogger (SecurityUtil.class.getName ()). Error (e);
        }
        return ctx.getCallerPrincipal ();
    }

но теперь в wildfly выдает следующую ошибку:

**Caused by: javax.ejb.EJBException: java.lang.IllegalArgumentException: Can not set javax.ejb.EJBContext field net.ps.ais.system.ejb.SystemServiceBean.ctx to org.jboss.as.ejb3.context.SessionContextImpl
at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx (CMTTxInterceptor.java:187)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx (CMTTxInterceptor.java:277)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew (CMTTxInterceptor.java:344)
at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation (LifecycleCMTTxInterceptor.java:66)
at org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation (CurrentInvocationContextInterceptor.java:41)
at org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation (ConcurrentContextInterceptor.java:45)
at org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation (ContextClassLoaderInterceptor.java:64)
at org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
at org.jboss.invocation.InterceptorContext.run (InterceptorContext.java:356)
at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation (PrivilegedWithCombinerInterceptor.java:80)
at org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
at org.jboss.invocation.ChainedInterceptor.processInvocation (ChainedInterceptor.java:61)
at org.jboss.as.ee.component.BasicComponent.constructComponentInstance (BasicComponent.java:161)**

если я изменил способ ввести его:

import org.jboss.as.ejb3.context.SessionContextImpl;

    @Resource
    SessionContextImpl ctx;

броски:

**Caused by: java.lang.NullPointerException
    at net.ps.ais.system.ejb.SystemServiceBean.helloWorld(SystemServiceBean.java:50)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:254)**

кто-нибудь может мне помочь?

0 ответов

Другие вопросы по тегам