我正在使用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开始工作吗?
由于 大卫
答案 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
还有更多内容