Java 在Tomcat的根目录下部署我的应用程序
我有我申请的war文件。我需要在根级别部署它。当前URL为Java 在Tomcat的根目录下部署我的应用程序,java,tomcat,Java,Tomcat,我有我申请的war文件。我需要在根级别部署它。当前URL为http://localhost:8080/war_name/application_name您有两个选择: 从tomcat中删除开箱即用的ROOT/目录,并在部署之前将war文件重命名为ROOT.war 将war部署为(示例中的)war\u name.war并在conf/server.xml中配置以使用war文件: <Context path="" docBase="war_name" debug="0" reloadable="
http://localhost:8080/war_name/application_name
您有两个选择:
ROOT/
目录,并在部署之前将war文件重命名为ROOT.war
war\u name.war
并在conf/server.xml
中配置以使用war文件:
<Context path="" docBase="war_name" debug="0" reloadable="true"></Context>
第一个比较简单,但有点笨拙。第二种可能是更优雅的方式。您有两种选择:
ROOT/
目录,并在部署之前将war文件重命名为ROOT.war
war\u name.war
并在conf/server.xml
中配置以使用war文件:
<Context path="" docBase="war_name" debug="0" reloadable="true"></Context>
结束标记之前添加以下位:
<Context path="" docBase="app_name">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
WEB-INF/WEB.xml
请注意,docBase属性。这是最重要的一点。在更改根web应用程序之前,请确保已部署应用程序名称,或者仅将未打包的web应用程序(应用程序名称)复制到tomcat的webapps文件夹中。启动,访问root,在那里查看你的应用程序名称 tomcat v.7上的(普通安装)
在conf/server.xml中,在文件末尾,即
结束标记之前添加以下位:
<Context path="" docBase="app_name">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
WEB-INF/WEB.xml
请注意,docBase属性。这是最重要的一点。在更改根web应用程序之前,请确保已部署应用程序名称,或者仅将未打包的web应用程序(应用程序名称)复制到tomcat的webapps文件夹中。启动,访问root,在那里查看你的应用程序名称 在Tomcat7中,通过这些更改,我可以在/处访问myAPP,在/处访问ROOT
<Context path="" docBase="myAPP">
<!-- 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>
WEB-INF/WEB.xml
WEB-INF/WEB.xml
将以上内容添加到tomcat7中server.xml的
部分,通过这些更改,我可以在/和/根目录下访问myAPP
<Context path="" docBase="myAPP">
<!-- 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>
WEB-INF/WEB.xml
WEB-INF/WEB.xml
以最快的方式将上述内容添加到server.xml的
部分
在我的服务器中,我正在使用此选项,根自动部署工作正常:
<Host name="mysite" autoDeploy="true" appBase="webapps" unpackWARs="true" deployOnStartup="true">
<Alias>www.mysite.com</Alias>
<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="mysite_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context path="/mysite" docBase="mysite" reloadable="true"/>
</Host>
www.mysite.com
在我的服务器中,我正在使用此选项,并且根自动部署工作正常:
<Host name="mysite" autoDeploy="true" appBase="webapps" unpackWARs="true" deployOnStartup="true">
<Alias>www.mysite.com</Alias>
<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="mysite_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context path="/mysite" docBase="mysite" reloadable="true"/>
</Host>
www.mysite.com
添加到@Rob Hruska的sol中,server.xml内部部分中的此设置起作用:
<Context path="" docBase="gateway" reloadable="true" override="true"> </Context>
注意:在某些情况下可能需要override=“true” 添加到@Rob Hruska的sol中,server.xml内部部分中的此设置起作用:
<Context path="" docBase="gateway" reloadable="true" override="true"> </Context>
注意:在某些情况下可能需要override=“true” 删除
$CATALINA\u HOME/webapps/ROOT
。更新$CATALINA_HOME/conf/server.xml
,确保主机元素如下所示:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Context path="" docBase="myApp"></Context>
它与Tomcat8一起工作。autoDeploy和deployOnStartup需要设置为false,以防止tomcat部署两次
myApp
。删除$CATALINA\u HOME/webapps/ROOT
。更新$CATALINA_HOME/conf/server.xml
,确保主机元素如下所示:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Context path="" docBase="myApp"></Context>
它与Tomcat8一起工作。autoDeploy和deployOnStartup需要设置为false,以防止tomcat两次部署myApp。我知道我的答案与其他答案有些重叠,但这是一个完整的解决方案,有一些优点。这适用于Tomcat 8:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector
port="80"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
这实际上限制了来自我自己的域(假IP地址)和本地主机的人访问admin web app文件夹,因为他们使用默认端口8080,并保持通过web界面动态部署war文件的能力
如果要对使用不同IP地址的多个应用程序使用此选项,可以将IP地址添加到连接器中(address=“143.21.2.1”
)
如果要从根目录运行多个web应用程序,可以复制服务标签(第二个使用不同的名称),并将
的docbase更改为例如
我知道我的答案与其他答案有点重叠,但这是一个具有某些优势的完整解决方案。这适用于Tomcat 8: