当按下我的网页上的按钮时,控制器/监听器(@ManagedBean
)在数据库中创建10个新实例。为了实现这一点,我需要一个MyClassFacade
变量(带有@EJB anotation
)来从数据库中获取不同的值,以及用于在数据库中保留新实例的.create()
方法。
但是,显然,我不允许注入EJB
注释变量。我不需要在xhtml
文件中提供该变量。我只需要在java类控制器中为我的逻辑。
为了增加混乱,项目部署并在大约50%的时间内正常工作。另外50%我收到错误:
com.sun.faces.mgbean.ManagedBeanCreationException:在托管bean chartView上执行资源注入时发生错误由以下引起:com.sun.faces.spi.InjectionProviderException:com.sun.enterprise.container.common.spi.util。 InjectionException:尝试注入Remote的异常ejb-ref name = ajax.chartView / ejbPulsFacade,Remote 3.x interface = com.mycompany.puls.PulsFacade,ejb-link = null,lookup =,mappedName =,jndi-name = com。 mycompany.puls.PulsFacade,refType = Session到类ajax.chartView:查找失败的' java:comp / env / ajax.chartView / ejbPulsFacade'在SerialContext中[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs = com.sun.enterprise.naming} 在org.glassfish.faces.integration.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:194)
也许我可以以某种方式跳过注入@EJB
变量?
我该怎么办?
编辑:Here是一个类似的问题,提供的解决方案是:创建一个不同的java类,它声明所有的EJB并扩展托管bean。