javax.naming.NameNotFoundException в tomcat7 - PullRequest
       2

javax.naming.NameNotFoundException в tomcat7

1 голос
/ 02 февраля 2012

Я получаю следующую ошибку в 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)

Я обращаюсь к контенту (классы и файл jsp), выполнив следующую запись в файле server.xml

<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 ]

3 голосов
/ 06 декабря 2012

Предполагая структуру веб-приложения как

TestApp -> WebContent -> WEB-INF
вы можете установить docBase, как показано ниже.

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

appBase="webapps"

Ошибка возникает, когда для docBase задано только имя контекста.

docBase="C:/project/TestApp"
0 голосов
/ 02 февраля 2012

Это означает, что ваш файл .war (в сжатом виде) не содержит директорию WEB-INF, которая предназначена для предоставления метаданных для веб-приложения, например, web.xml.Или каталог classes в WEB-INF, который содержит исполняемые классы вашего веб-приложения (например, код сервлета).

Имя каталога "WEB-INF" должно быть написано только заглавными буквами.Если вы работаете в Windows, возможно, вы набрали его в нижнем регистре, но утилита Windows zip показывает его в верхнем регистре)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...