【问题标题】:Caused by: javax.naming.NameNotFoundException - Name [Class/object] is not bound in this Context原因:javax.naming.NameNotFoundException - 名称 [Class/object] 未绑定在此上下文中
【发布时间】:2013-05-21 21:36:38
【问题描述】:

有一个问题在 6 小时内一直在处理,但没有得到解决。

我正在使用 JSF/Tomcat 7/Maven/Java 7 开发一个动态 Web 项目

每次我在服务器上运行项目时都会得到:

javax.naming.NameNotFoundException: Name [....ProjectManagement/service] is not bound in this Context. Unable to find [de.hhn.team3.artzpraxismanagement.ProjectManagement].
at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
at org.apache.catalina.core.DefaultInstanceManager.lookupFieldResource(DefaultInstanceManager.java:580)
at org.apache.catalina.core.DefaultInstanceManager.processAnnotations(DefaultInstanceManager.java:470)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:157)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider.postConstruct(Tomcat7AnnotationLifecycleProvider.java:90)
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:213)
at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.createManagedBean(ManagedBeanResolver.java:333)
at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:296)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:65)
at org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:123)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:161)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:38)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:263)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1089)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:733)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:758)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:758)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1900)
at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:115)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

这是我的班级项目管理

 package ...artzpraxismanagement;

 @Named 
@ManagedBean 
@SessionScoped 
public class ProjectManagement implements Serializable {        
private static final long serialVersionUID = 1L;     
 @EJB   private Services service;

和我的服务等级

@ManagedBean
@SessionScoped
@Local
public class Services implements Serializable {...}

我尝试了不同的解决方案,例如删除 WebContent/lib 中的 Tomcat Jars,但没有帮助。

我猜我的 ProjectManagement 类在 context.xml 中没有限制。

请问我该怎么做?

【问题讨论】:

    标签: jsf jakarta-ee tomcat ejb cdi


    【解决方案1】:

    默认情况下,EJB 和 CDI 在 Tomcat 中不起作用,因为 Tomcat 只是一个 Servlet 容器。如果您想使用它们,您必须将您的应用程序部署在真正的 Java EE 应用程序服务器上,例如 JBoss 7GlassFish 3TomEE(请注意,这些都是免费的,还有一些其他的,例如 IBM WebSphere 和 Oracle WebLogic,它们是 Java EE 6 个应用程序服务器,但您必须付费才能获得/使用它们)。如果你继续在 Tomcat 中部署它,你将永远不会成功。

    如果您仍想只使用 Tomcat,那么请去掉所有那些 @EJB 和其他 Java EE 注释(例如 CDI 注释,如 @Named)。

    顺便说一句,请遵循关于 JSF 或 CDI 的良好理智教程。您不能同时将 bean 装饰为 @Named@ManagedBean

    【讨论】:

    • +1。 Luiggi,猜猜谁是“sane tutorial”这个词的最常用用户? :)
    • @skuntsel 我们都知道谁=P
    • 谢谢路易吉!!!已经删除了这些注释,现在它正在工作!!!反正要读一个很好的教程
    猜你喜欢
    • 2011-09-22
    • 2016-12-08
    • 2018-09-12
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多