引起的:javax.naming.NameNotFoundException - Name [Class / object]在此上下文中未绑定 [英] Caused by: javax.naming.NameNotFoundException - Name [Class/object] is not bound in this Context

查看:157
本文介绍了引起的:javax.naming.NameNotFoundException - Name [Class / object]在此上下文中未绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



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



每当我在服务器上运行项目,我得到这个:

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

这里是我的Class ProjectManagement

 包... artzpraxismanagement; 

@Named
@ManagedBean
@SessionScoped
public class ProjectManagement实现Serializable {
private static final long serialVersionUID = 1L;
@EJB私人服务服务;

和我的服务类

  @ManagedBean 




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


< blockquote>

我已经尝试过不同的解决方案,比如在WebContent / lib中删除Tomcat Jars,但没有帮助。



我猜我的 ProjectManagement 类不在context.xml中。



我该怎么做? >

解决方案

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



如果您仍然只想使用Tomcat,则可以将所有这些 @ EJB 和其他Java EE注释(例如CDI注释,如 @Named )。



顺便说一句,请遵循一个关于JSF或CDI的精通教程。您不能同时以$ @Named @ManagedBean 的形式装饰。


have a problem that am dealing with since 6 hours but don't get to solve it.

Am developping a Dynamic web project using JSF/Tomcat 7/ Maven/Java 7

Everytime I run the project on the server I get this:

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)

here is my Class ProjectManagement

 package ...artzpraxismanagement;

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

and my Service Class

@ManagedBean

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

I have tried different solution like delete Tomcat Jars in WebContent/lib but it doesn't help.

I guess my ProjectManagement class is not bounded in the context.xml.

How can I do that please?

解决方案

EJBs and CDI don't work in Tomcat by default since Tomcat is just a Servlet Container. If you want to use them you must deploy your application on a real Java EE application server like JBoss 7, GlassFish 3 or TomEE (note that these are free, there are others like IBM WebSphere and Oracle WebLogic that are Java EE 6 application servers but you must pay in order to acquire/use them). If you keep deploying this in Tomcat, you will never succeed.

If you still want to use Tomcat only, then get rid of all those @EJB and other Java EE annotations (e.g. CDI annotations like @Named).

By the way, please follow a good sane tutorial on JSF or CDI. You can't have a bean decorated as @Named and @ManagedBean at the same time.

这篇关于引起的:javax.naming.NameNotFoundException - Name [Class / object]在此上下文中未绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆