首页 文章

无法在server.xml之外定义上下文

提问于
浏览
1

试图让Tomcat 7应用程序开始运行并了解一些事情:

  • 在早期版本的Tomcat中,Context Descriptor配置的内容通常存储在Tomcat的主配置文件server.xml中,但现在不建议这样做(尽管它目前仍然有效) .

  • 上下文描述符的位置是:$ CATALINA_BASE / conf / [enginename] / [hostname] / [webappname] .xml $ CATALINA_BASE / webapps / [webappname] /META-INF/context.xml

所以这是我们的应用程序的布局方式(不可协商):

Tomcat + WAR: /some/dir/MyApp/* some/dir/MyApp/webapps
LOGS: /some/other/dir/logs/MyApp/

在应用程序启动后没有错误,我发出以下请求:

http://foo/static/index.html

当我在$ CATALINA_HOME / conf / server.xml中定义上下文时,一切都很美:

<Host name="localhost"  appBase="webapps"
   unpackWARs="false" autoDeploy="true">

    <Context path="/" docBase=“MyApp.war" />

    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="/some/other/dir/logs/MyApp"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

现在,为了避免在server.xml中放置上下文,我尝试了几件事 . 我从server.xml中删除了上下文,然后创建了$ CATALINA_HOME / conf / Catalina / localhost / MyApp.xml文件 .

<Context
  docBase=“/some/dir/MyApp/webapps/MyApp.war"
  path=""
  reloadable="false"
  swallowOutput="true"
  sendRedirectBody="true"
>
  <Valve className="org.apache.catalina.valves.AccessLogValve"
   prefix="localhost_access_log." suffix=".txt"
   pattern="common"/>
</Context>
  • FAIL:13 / Jun / 2014:17:03:53 -0700]“GET /static/index.html HTTP / 1.1”404 -

  • MyApp.log:主机appBase中的docBase /some/dir/MyApp/webapps/MyApp.war已被指定,将被忽略

接下来我尝试从server.xml中删除上下文,删除$ CATALINA_HOME / conf / Catalina / localhost / MyApp.xml,但创建$ CATALINA_HOME / conf / context.xml:

<Context>
    path = ""
    docBase=“MyApp.war"
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
  • FAIL:13 / Jun / 2014:17:03:53 -0700]“GET /static/index.html HTTP / 1.1”404 -

我使用和不使用路径尝试了上面的context.xml,并且使用两者生成相同的404定义了docBase .

我错过了什么?

1 回答

  • 2

    您甚至不需要手动定义上下文 . 如果您希望将应用程序部署在根目录上,只需将您的战争重命名为ROOT.war并将其放在webapps目录中(删除所有出现的内容) .

    Tomcat查看webapps目录(实际上,它可以通过主机上的appBase属性进行更改)来部署war .

    See tomcat Documentation for more details.

相关问题