没有命名上下文绑定到该类加载器

时间:2018-06-28 06:03:26

标签: java tomcat8

我已经在Eclipse中创建了一个动态Web项目。当我尝试从Eclipse在本地Tomcat上运行它时,出现错误:

  

没有命名上下文绑定到该类加载器

我尝试了一切:在另一个Tomcat版本,另一个Eclipe版本上运行应用程序...

有人可以帮我吗?由于没有调试功能,目前这是进一步发展的障碍。

完整的错误日志为:

WARNING: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PCT_TO_CPQ]] so no cleanup was performed for that container
javax.naming.NamingException: No naming context bound to this class loader
    at org.apache.naming.ContextBindings.getClassLoader(ContextBindings.java:268)
    at org.apache.catalina.deploy.NamingResourcesImpl.cleanUp(NamingResourcesImpl.java:993)
    at org.apache.catalina.deploy.NamingResourcesImpl.stopInternal(NamingResourcesImpl.java:976)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:226)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5492)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:226)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:264)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:856)
    at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1038)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:856)
    at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1038)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:585)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:883)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:685)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)

4 个答案:

答案 0 :(得分:1)

在我的情况下,是我有两个具有相同urlPattern的restcontrollers ...例如:

@WebServlet(urlPatterns = { "/ws/user/login", "/ws/user/logout" })

在两个不同的控制器中。这导致了以上错误消息。

如果开发人员实施较少混乱的错误消息,那么这些utils和框架会更好得多! Spring及其许多模块充满了这些误导性错误。这使初学者很难进入它。

答案 1 :(得分:0)

1。尝试删除服务器,然后重新添加。

2。清理项目。

答案 2 :(得分:0)

您必须确保..您的动态Web模块版本正确。

转到:

  1. 右键单击项目
  2. 点击构建路径
  3. 选择项目概况
  4. 选择具有正确版本的动态Web模块(复选框)

答案 3 :(得分:0)

在tomcat配置中,我有两个模块:我要运行的实际模型和我不小心添加的另一个模型。第二种模型是指一个在我的工作空间中“关闭”的项目,这对我造成了问题。

尝试:

  • 双击Eclipse中“服务器”标签下的服务器
  • 在打开的窗口中,转到左下角的“模块”
  • 删除不需要的模块
  • 保存

最终清理服务器并重新启动