【问题标题】:javax.naming.NameNotFoundException in tomcat7tomcat7 中的 javax.naming.NameNotFoundException
【发布时间】:2012-02-02 10:26:32
【问题描述】:

我在 tomcat7 中遇到以下错误

错误:

javax.naming.NameNotFoundException: Resource /WEB-INF/classes not found
        at org.apache.naming.resources.BaseDirContext.listBindings(BaseDirContext.java:733)
        at org.apache.naming.resources.ProxyDirContext.listBindings(ProxyDirContext.java:546)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1197)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:825)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:897)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:873)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1617)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

我正在通过 server.xml 文件中的条目访问内容(类和 jsp 文件)

<Host name="test" debug="0" appBase="path where classes and WEB-INF resides"
                unpackWARs="false" autoDeploy="false">

                <Logger className="org.apache.catalina.logger.FileLogger"
                    prefix="om_log." suffix=".log"
                    timestamp="true"/>

        <Context path="" docBase="path where classes and WEB-INF resides" debug="0"
               reloadable="false" crossContext="false" />
       </Host>

【问题讨论】:

  • 我已经进行了相同的搜索,但没有得到任何令人满意的错误原因。
  • 这个错误的可能原因是什么?

标签: tomcat jboss


【解决方案1】:

假设 Web 应用程序的结构为

TestApp -> 网页内容 -> WEB-INF
您可以设置 docBase 如下所示。

<Context path="/TestApp" docBase="C:/project/TestApp/webapp" debug="0"
           reloadable="false" crossContext="false" />

appBase="webapps"

当 docBase 设置为仅上下文名称时会出现错误。

docBase="C:/project/TestApp"

【讨论】:

    【解决方案2】:

    这意味着您的.war 文件(压缩形式)不包含目录WEB-INF,该目录旨在为网络应用程序提供元数据,例如web.xml 。或者WEB-INF 中的classes 目录,其中包含您的Web 应用程序的可执行类(例如servlet 代码)。

    目录名“WEB-INF”需要全部大写。如果您在 Windows 上,可能是您以小写形式输入了它,但 windows zip 实用程序以大写形式显示)

    【讨论】:

    • 我通过在 标签下进入 server.xml 来访问战争内容,它在 tomcat5 中运行良好。
    • 现在看起来可能是初始化顺序的问题。这样 在战争可以访问之前被初始化。只是猜测。
    猜你喜欢
    • 2011-04-24
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2016-08-19
    • 1970-01-01
    • 2019-01-04
    相关资源
    最近更新 更多