解决Tomcat增加Context导致第一次无法启动tomcat,第二次才能成功启动

解决Tomcat增加Context导致第一次无法启动tomcat,第二次才能成功启动,第1张

修改tomcat conf 下server.xml 文件如下

    <Host name="localhost" appBase=""

            unpackWARs="true" autoDeploy="true"  deployXML ="false" deployOnStartup ="false">

          <Context path="" docBase="webapps/xx" reloadable="false"/>。

     deployXML ="false" : 不部署conf/catalina/localhost下的xml相应的WEB应用

    deployOnStartup ="false" :tomcat启动时, 不部署webapps下的所有web应用

war包依旧在webapps,但是启动tomcat自动解压war包文件产生在webapps同级的ROOT下,

此时tomcat只需启动一次便能成功启动tomcat。

增加Context配置是想直接地址+端口访问项目,地址+端口访问项目是为了项目中的链接或者图片写的是绝对路径,带有项目名称的绝对路径是不可以使用的。

当我们开发完一个Web应用后,我们需要将该应用发布到WebServer中,以便其他用户可以访问。在JAVA的WEB开发领域,我们通常使用TOMCAT作为我们的WEB服务器进行测试或正式部署。

一般我们将WEB应用打包成WAR格式,然后拷贝到TOMCAT的WEBAPP目录下进行发布,在正常情况下,TOMCAT将自动解压WAR文件并生成对应的目录,而且会在内存中动态创建该WEB应用对应的CONTEXT路径。比如我们的WAR文件是Sample.war,那么解压后的目录就是Sample目录,在内存中动态创建的Context路径就是/Sample。在开发阶段这样的默认行为是可以接受的,但是在正式部署的情况下,我们通常需要修改应用的Context路径以适应我们的需要。

如果我们想让用户仅仅输入域名来访问我们的Sample应用,我们就需要修改Tomcat的Context设置。具体如何设置Context路径的方式有两种,一种是修改{TOMCAT_HOME}/conf/server.xml文件,另一种是建立一个Context片段文件放在webapps目录下。

我们这里介绍第一种方式。

使用任何文本编辑器打开server.xml文件,在<Host>节点下增加<Context>节点,并设置path,docBase,debug和reloadable属性,如下:

<?xml version="1.0" encoding="UTF-8"?>

<Server>

<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>

<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>

<GlobalNamingResources>

<Environment

name="simpleValue"

type="java.lang.Integer"

value="30"/>

<Resource

auth="Container"

description="User database that can be updated and saved"

name="UserDatabase"

type="org.apache.catalina.UserDatabase"

pathname="conf/tomcat-users.xml"

factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>

</GlobalNamingResources>

<Service

name="Catalina">

<Connector

port="8080"

redirectPort="8443"

minSpareThreads="25"

connectionTimeout="20000"

maxSpareThreads="75"

maxThreads="150"

maxHttpHeaderSize="8192">

</Connector>

<Connector

port="8009"

redirectPort="8443"

protocol="AJP/1.3">

</Connector>

<Engine

defaultHost="localhost"

name="Catalina">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>

<Host

appBase="webapps"

name="localhost">

<Context

path="/samples">

<WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

<Context

path="/profiler">

<WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

<Context

path="/flex">

<WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

<!-- 配置直接通过域名访问/Samples应用 -->

<Context path="" docBase="/samples" debug="0" reloadable="true">

</Context>

</Host>

</Engine>

</Service>

</Server>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11558968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存