Невозможно внедрить зависимости в bean-компонент JSF с помощью eager = true (Websphere, Myfaces)

1

У меня есть простая бета-версия JSF с областью приложения:

@ManagedBean(eager = true, name = "SetupBean")
@ApplicationScoped
public class SetupBean {
    @ManagedProperty(value = "#{myBean}")
    private MyBean myBean;
    public void setMyBean(final MyBean myBean) {
        this.myBean = myBean;
    }    
    @PostConstruct
    public void postConstruct() {
        System.err.println("I'm here!");
    }
}

В то время @ManagedProperty строка @ManagedProperty закомментирована (нет инъекции dependecy), все работает "ОК" (за исключением, я не могу ничего полезного в этом компоненте).

Однако после расторжения я получаю сообщение об ошибке:

java.lang.UnsupportedOperationException: этот метод не поддерживается во время запуска

К сожалению, я не могу найти какую-либо полезную информацию. Метод WHAT не поддерживается во время запуска. Я знаю только, что что-то не так с инъекцией зависимости. MyBean является чем-то особенным: Application Scoped, он не имеет зависимости, он имеет только некоторые частные свойства, которые необходимо настроить для каждого приложения (компонент находится в общей библиотеке).

Здесь полная трассировка стека:

java.lang.UnsupportedOperationException: этот метод не поддерживается во время запуска в org.apache.myfaces.context.servlet.StartupServletExternalContextImpl.getRequestMap(StartupServletExternalContextImpl.java:149) в org.apache.myfaces.config.ManagedBeanBuilder.getScope(ManagedBeanBuilder.java: 540) в org.apache.myfaces.config.ManagedBeanBuilder.getNarrowestScope(ManagedBeanBuilder.java:462) в org.apache.myfaces.config.ManagedBeanBuilder.isInValidScope(ManagedBeanBuilder.java:433) в org.apache.myfaces.config. ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:322) в org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:169) в org.apache.myfaces.webapp.AbstractFacesInitializer._createEagerBeans (AbstractFacesInitializer.java:235) в org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:152) в org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:1 11) в com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1678) в com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:414) на com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88) в com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169) в com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java: 749) в com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634) в com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426) на com.ibm.ws. webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718) в com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1173) в com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart( DeployedApplicationImpl.java:1370) в com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639) в com.ibm.ws.runtime.component. DeployedApplicationImpl.start(DeployedApplicationImpl.java:968) в com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:772) в com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java: 1367) на com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2172) на com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445) на com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access $ 500 (CompositionUnitMgrImpl.java:116) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl $ 1.run(CompositionUnitMgrImpl.java:663) в com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5459 ) в com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5585) в com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:677) в com.ibm.ws.runtime. component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:621) в com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1259) на sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на sun.reflect. NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) на sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) в java.lang.reflect.Method.invoke(Method.java:611) на sun.reflect.misc.Trampoline.invoke(MethodUtil.java:49) на sun.reflect.GeneratedMethodAccessor66.invoke (Неизвестный источник) на sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) в java.lang.reflect.Method.invoke(Method.java: 611) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:25 6) в javax.management.modelmbean.RequiredModelMBean $ 4.run(RequiredModelMBean.java:1148) в java.security.AccessController.doPrivileged(AccessController.java:252) в com.ibm.oti.security.CheckedAccessControlContext.securityCheck(CheckedAccessControlContext. java: 30) at sun.misc.JavaSecurityAccessWrapper.doIntersectionPrivilege(JavaSecurityAccessWrapper.java:41) в javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1142) в javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java: 995) в com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:848) в com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:774) в com.ibm.ws.management. AdminServiceImpl $ 1.run(AdminServiceImpl.java:1335) в com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) в com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1228 ) в com.ibm.ws.management.application.sync. StartDeploymentTask.startDeployment(StartDeploymentTask.java:247) в com.ibm.ws.management.application.sync.StartDeploymentTask.fullAppUpdate(StartDeploymentTask.java:119) в com.ibm.ws.management.application.sync.StartDeploymentTask.performTask( StartDeploymentTask.java:107) в com.ibm.ws.management.application.sync.AppBinaryProcessor $ ExpandApp.expand(AppBinaryProcessor.java:1709) в com.ibm.ws.management.application.sync.AppBinaryProcessor.postProcessSynchronousExt(AppBinaryProcessor. java: 749) в com.ibm.ws.management.bla.sync.BLABinaryProcessor.postProcess(BLABinaryProcessor.java:590) в com.ibm.ws.management.bla.sync.BLABinaryProcessor.onChangeCompletion(BLABinaryProcessor.java:467) at com.ibm.ws.management.bla.sync.BinaryProcessorWrapper.onChangeCompletion(BinaryProcessorWrapper.java:109) в com.ibm.ws.management.repository.FileRepository.postNotify(FileRepository.java:1924) на com.ibm.ws.management.repository.FileRepository.update(FileRepository.java:1433) в com.ibm.ws.management .repository.client.LocalConfigRepositoryClient.update(LocalConfigRepositoryClient.java:189) в com.ibm.ws.sm.workspace.impl.WorkSpaceMasterRepositoryAdapter.update(WorkSpaceMasterRepositoryAdapter.java:665) в com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.update(RepositoryContextImpl.java:1998) в com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.synch(RepositoryContextImpl.java:1946) в com.ibm.ws.sm.workspace.impl.WorkSpaceImpl.synch(WorkSpaceImpl.java:549) в com.ibm.ws.management.configservice.ConfigServiceImpl.save(ConfigServiceImpl.java:719) на sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) в java.lang.reflect.Method.invoke(Method.java:611) на sun.reflect.misc.Trampoline.invoke(MethodUtil. java: 49) at sun.reflect.GeneratedMethodAccessor66.invoke (Неизвестный источник) на sun.reflect.DelegatingMethodAc cessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) в java.lang.reflect.Method.invoke(Method.java:611) в sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:256) в javax.management.modelmbean.RequiredModelMBean $ 4.run(RequiredModelMBean.java:1148) в java.security.AccessController.doPrivileged(AccessController.java:252) в com.ibm.oti.security.CheckedAccessControlContext.securityCheck(CheckedAccessControlContext.java:30) на sun.misc.JavaSecurityAccessWrapper.doIntersectionPrivilege(JavaSecurityAccessWrapper.java:41) в javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1142) в javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:995) в com.sun. jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:848) в com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:774) в com.ibm.ws.management.AdminServiceImpl $ 1.run(AdminServiceImpl.java: 1335) at com.ibm.ws.security.util.AccessContro ller.doPrivileged(AccessController.java:118) в com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1228) в com.ibm.ws.management.remote.AdminServiceForwarder.invoke(AdminServiceForwarder.java:346) в javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1465) в javax.management.remote.rmi.RMIConnectionImpl.access $ 300 (RMIConnectionImpl.java:85) в javax.management.remote.rmi.RMIConnectionImpl $ PrivilegedOperation.run(RMIConnectionImpl.java:1306) в javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1398) в javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) в javax.management.remote.rmi._RMIConnectionImpl_Tie.invoke(_RMIConnectionImpl_Tie.java:751) в javax.management.remote.rmi._RMIConnectionImpl_Tie._invoke (_RMIConnectionImpl_Tie.java:158) в com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java: 669) at com.ibm.CORBA.iiop.ServerDelegate.dispatch(Ser verDelegate.java:523) в com.ibm.rmi.iiop.ORB.process(ORB.java:523) в com.ibm.CORBA.iiop.ORB.process(ORB.java:1575) на com.ibm.rmi.iiop.Connection.doRequestWork(Connection.java:3039) в com.ibm.rmi.iiop.Connection.doWork(Connection.java:2922) в com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:64 ) на com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:118) на com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1815)

Текущая конфигурация: WebSphere 8.5 с MyFaces 2.0.2 (заказная версия IBM).

Что означает эта ошибка? Что нужно сделать для того, чтобы получить инъекцию зависимостей?

Теги:
jsf
jsf-2
myfaces

1 ответ

1

Информация, http://docs.oracle.com/javaee/6/api/javax/faces/bean/ManagedBean.html

Стремитесь к применению. Заставляет его загружать в первую очередь. Удалите нетерпение, похоже, у других есть похожие ошибки. Eager ApplicationScoped управляемые компоненты, созданные несколько раз

Для некоторых аннотаций есть дубликаты пакетов. Cam u chec. Они правы

  • 0
    К сожалению, стремление - это как раз то, что мне нужно, потому что в противном случае мне пришлось бы фактически ссылаться на мой компонент на каждом сайте, потому что есть логика, которую необходимо выполнить один раз, прежде чем будет сделана любая другая операция.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню