gpt4 book ai didi

java - 在 server.xml 之外定义上下文时遇到问题

转载 作者:行者123 更新时间:2023-11-28 22:12:54 26 4
gpt4 key购买 nike

尝试启动 Tomcat 7 应用程序并了解一些事情:

  1. 在早期版本的 Tomcat 中,上下文描述符配置的内容通常存储在 Tomcat 的主要配置文件 server.xml 中,但现在不鼓励这样做(尽管目前它仍然有效)。

  2. 上下文描述符的位置是:$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>

-->失败:13/Jun/2014:17:03:53 -0700] "GET/static/index.html HTTP/1.1"404 -

-->MyApp.log: 一个docBase/some/dir/MyApp/webapps/MyApp.war inside the host appBase has been specified, and will be ignored

接下来,我尝试从 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>

—>失败:13/Jun/2014:17:03:53 -0700] "GET/static/index.html HTTP/1.1"404 -

我尝试了上面的 context.xml 有路径和没有路径,以及定义的 docBase 都产生了相同的 404。

我错过了什么?

最佳答案

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

Tomcat查看webapps目录(其实可以通过Host上的appBase属性改变)来部署war。

See tomcat Documentation for more details.

关于java - 在 server.xml 之外定义上下文时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com