如何在Tomcat的META-INF / context.xml中指定路径

时间:2012-03-08 11:36:43

标签: tomcat tomcat7

我正在使用Tomcat 7,并希望在war文件中设置war文件的上下文根,并让Tomcat自动部署并选择此路径。    我认为通过在包含的war的META-INF目录中放置一个context.xml,我找到了这样做的方法。

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/somepath/myapp"/>

但是这似乎不起作用,我认为它是由http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/SetContextPropertiesRule.html加载的,它表示除了路径之外它还加载了所有内容!

我知道我可以将战争命名为#myapp.war,但是我会将其部署到weblogic,这对于这样的名字并不满意。

我可以使用一些设置让路径从上面的context.xml开始工作吗?

由于 大卫

4 个答案:

答案 0 :(得分:13)

除非在path中的Context中指定路径,强烈建议不要使用多级路径,否则将忽略上下文server.xml属性。

war文件的名称或tomcat/conf/Catalina/hostname中的Context xml文件的名称将成为已部署应用程序的path

在您的情况下,上述两个中的后一个是解决方案,只需确保将.war文件放在主机指定的appBase之外,或者您将部署应用程序两次。

在:conf/Catalina/localhost/myapp#path.xml

<?xml version="1.0"?>
<Context docBase="/some/path/to/myapp.war">
</Context>

答案 1 :(得分:2)

在/tomcat7/conf/server.xml中添加元素内的下面的行并重新启动Tomcat以进行更改。

*更改&#34; mycom&#34;到你的申请名称。

<Context path="" docBase="mycom">
  <!-- Default set of monitored resources -->
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="ROOT" docBase="ROOT">
  <!-- Default set of monitored resources -->
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

这将使默认的根应用程序出现在上下文根&#34; / ROOT&#34;。

现在您的应用可以在&#34; /&#34;和&#34; / mycom&#34;还有!

答案 2 :(得分:1)

将copyXML =“true”添加到$ TOMCAT_HOME / conf / server.xml中的Host配置

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

答案 3 :(得分:0)

如果将application.war加载到Tomcat不知道的目录中,它如何读取war文件中的任何内容?添加此信息的正确位置在$ TOMCAT_HOME / conf / context.xml中 - 这是Tomcat的一部分,Tomcat可以读取此文件并找出应用程序的位置并进行部署。 how to set up JNDI in Tomcat

还有更多内容