CDI SessionScoped继承自抽象类

时间:2015-05-17 23:34:55

标签: jsf-2 cdi jsf-2.2 inject jboss-weld

我尝试使用javax.enterprise.context.SessionScopedjavax.inject.Named

在我的控制器中继承自abstractContoller(Referentiel.java)

@SessionScoped
@URLMapping(id = "account", pattern = "/page_comptes", viewId = "/referentiel/PgComptes.jsf")
@Named
public class AccountManagementBean extends Referentiel implements java.io.Serializable {

    private static final long serialVersionUID = 5471453156487838630L;

//

}

和Referentiel abstract class

 public abstract class Referentiel {

        @EJB
        protected ReferentielDaoLocal ejbRef;

        protected String filterChain;//useed to search in emetteurList

        protected Gouvernorat selectedGouvernorat;

        protected Commune selectedCommune;

        protected Localite idLocalite;//used for edit emetteur

        protected transient SessionLoader loader = new SessionLoader();

        public Referentiel() {
        }

        protected abstract ReferentielDaoLocal getRefEJB();
    //getters ans setters

    }

Glassfish 4

上部署应用程序时出现此异常
SEVERE:   Exception while loading the app : CDI deployment failure:WELD-001437 Normal scoped bean class org.ccf.sicav.bean.refentiel.Referentiel is not proxyable because the type is final or it contains a final method public final org.ccf.sicav.domain.Localite org.ccf.sicav.bean.refentiel.Referentiel.getIdLocalite() - Managed Bean [class org.ccf.sicav.bean.refentiel.AccountManagementBean] with qualifiers [@Default @Any @Named].
org.jboss.weld.exceptions.DeploymentException: WELD-001437 Normal scoped bean class org.ccf.sicav.bean.refentiel.Referentiel is not proxyable because the type is final or it contains a final method public final org.ccf.sicav.domain.Localite org.ccf.sicav.bean.refentiel.Referentiel.getIdLocalite() - Managed Bean [class org.ccf.sicav.bean.refentiel.AccountManagementBean] with qualifiers [@Default @Any @Named].
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:187)
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208)
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519)
    at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505)
    at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480)
    at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536)
    at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216)
    at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:356)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:722)
Caused by: org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001437 Normal scoped bean class org.ccf.sicav.bean.refentiel.Referentiel is not proxyable because the type is final or it contains a final method public final org.ccf.sicav.domain.Localite org.ccf.sicav.bean.refentiel.Referentiel.getIdLocalite() - Managed Bean [class org.ccf.sicav.bean.refentiel.AccountManagementBean] with qualifiers [@Default @Any @Named].
    at org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:232)
    at org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:181)
    at org.jboss.weld.util.Proxies.getUnproxyableTypesExceptionInt(Proxies.java:198)
    at org.jboss.weld.util.Proxies.getUnproxyableTypesException(Proxies.java:171)
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:185)
    ... 42 more

0 个答案:

没有答案