Tomcat增加Context配置导致启动的时候项目加载两次
2018-01-27 16:28
495 查看
1. 出现场景
eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/。
现在需要改成这样访问http://localhost。
修改tomcat的server.xml文件,增加如下配置
此时每次启动tomcat观察日志都会发现应用加载了两次,什么原因呢?
2. 问题原因
虚拟目录引起的问题,我们在Host标签里配置了appBase="webapps",tomcat加载一次应用。在里配置了一次docBase,tomcat又去加载一次应用。
3. 解决办法
将appBase="webapps"置为appBase="",docBase="myapp"置为doc
d934
Base="webapps/myapp"。配置如下:
说明:如果你的项目中的链接或者图片写的都是绝对路径的话,那么带有项目名称的绝对路径是不可以使用的。
eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/。
现在需要改成这样访问http://localhost。
修改tomcat的server.xml文件,增加如下配置
<Context path="" docBase="myapp" reloadable="false"/>,修改后host部分如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="myapp" reloadable="false"/> </Host>
此时每次启动tomcat观察日志都会发现应用加载了两次,什么原因呢?
2. 问题原因
虚拟目录引起的问题,我们在Host标签里配置了appBase="webapps",tomcat加载一次应用。在里配置了一次docBase,tomcat又去加载一次应用。
3. 解决办法
将appBase="webapps"置为appBase="",docBase="myapp"置为doc
d934
Base="webapps/myapp"。配置如下:
<Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="webapps/myapp" reloadable="false"/> </Host>
说明:如果你的项目中的链接或者图片写的都是绝对路径的话,那么带有项目名称的绝对路径是不可以使用的。
相关文章推荐
- Tomcat增加Context配置导致启动的时候项目加载两次
- Tomcat增加Context配置导致启动的时候项目加载两次
- Tomcat启动时项目重复加载,导致资源初始化两次的问题
- Tomcat 默认项目配置,导致tomcat启动两次 解决
- Tomcat启动时项目重复加载,导致资源初始化两次的问题
- web.xml文件加载顺序 一、 1 、启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param>
- Tomcat启动时项目重复加载,导致资源初始化两次的问题
- Tomcat启动时项目重复加载,导致资源初始化两次的问题
- Tomcat启动时项目重复加载,导致资源初始化两次的问题
- eclipse中tomcat启动时项目重复加载,导致资源初始化两次的问题
- Tomcat启动时项目重复加载,导致资源初始化两次的问题
- eclipse中tomcat启动时项目重复加载,导致资源初始化两次的问题
- 通过conf/server.xml中的context配置的web项目启动的时候没有发布情况日志信息
- IntelliJIdea 2016.2 使用 tomcat 8.5 调试spring的web项目时,bean被实例化两次导致timer和thread被启动了两遍的问题的解决
- tomcat启动时候,有事会因为某些问题(基本都是配置问题),导致tomcat启动一闪而过,错误看不到.
- tomcat启动项目被重新加载,导致资源初始化两遍
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
- tomcat启动项目被重新加载,导致资源初始化两遍
- tomcat配置context项目修改时自动加载
- tomcat启动项目被重新加载,导致资源初始化两遍