tomcat7中的javax.naming.NameNotFoundException

时间:2012-02-02 10:26:32

标签: tomcat jboss

我在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>

2 个答案:

答案 0 :(得分:3)

假设Web应用程序的结构为

TestApp        - &GT;网页内容                   - &GT; WEB-INF
您可以设置docBase,如下所示。

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

appBase="webapps"

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

docBase="C:/project/TestApp"

答案 1 :(得分:0)

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

目录名称“WEB-INF”必须全部为大写。如果你在Windows上,可能是你用小写字母键入它,但是windows zip实用程序以大写形式显示它)