Tomcat加载两次问题

前提介绍:

1.某个应用Dragon放置路径:/opt/apache-tomcat-7.0.47/webapps/Dragon

2.Tomcat的server.xml部分配置信息如下:

<Context path="" reloadable="false" docBase="Dragon"/>

问题:此时tomcat启动时发现控制台打印两次信息。

问题原因:

因为Dragon应用本来就放在Tomat的默认webapp目录下(tomcat在启动时肯定会加载1次),

然后又在server.xml中做了配置,为了达到访问根就可以访问Dragon应用(这样tomcat就又加载1次);

结果,Tomcat就会加载两次。

解决办法:

首先在eclipse中可以右键项目名,选择Properties,再点击Web Project Setting,查看Content root的内容是否为当前项目名,如果不是,请改为当前的项目名,然后继续下面方法。

办法1、不要将Dragon应用放在Tomat的默认webapps目录下,把它移出去,然后在server.xml中

修改docBase的值为Dragon应用在新位置的绝对路径就可以了;

办法2、删除掉server.xml中 Context 的手动配置,这样就不会加载两次,因为Dragon应用在webapps下,

所以在访问时,就只能是:http://ip:port/Dragon这样来访问了,注意删除Context标签时注意不要把</Host>也删了。

详细说明见:http://blog.csdn.net/z_play_du/article/details/8525813

时间: 2024-10-13 16:01:13

Tomcat加载两次问题的相关文章

TOMCAT加载两次war包(重复加载)

一.问题描述 项目中通过配置Context节点docBase,使docBase指向项目的绝对路径,可以直接通过IP加端口访问,今日发现意外bug,项目中某个功能奇数次执行成功,偶数次执行失败.二.问题排查 这种现象应该是两次使用的为不同的对象,通过debug确认问题.但是本来是单例模式实现的实例,调用的时候却不是同一个实例,经过排查发现是Tomcat加载war包两次导致的.三.解决办法 修改Tomcat的/conf/server.xml文件 1.将Host标签中的appBase置为空,在weba

tomcat加载两次项目,事务初始化多次

1.  项目重复启动    appBase设置和docBase设为一样,不写appBase默认也是webapps 2.  事务 通常会这样配置 代码这样写 但jeesite中,在启动时基本上会扫描所有的service   这会有个冲突在配置文件中开启事务时初始化了一次定时任务,在扫描service时又初始化了一次,在执行定时任务时就会同时执行两个task 如果人品不好(比如我),项目加载两次,事务初始化两次,那么每次执行就会有4个task Jeesite中定义事务只需要写一个task类,配置文件

Tomcat启动后加载两次servlet的问题

前提: 1.存在某个应用:hello 2.该应用存放路径:D:\apache-tomcat-5.5.17\webapps\hello 3.Tomcat的server.xml部分配置信息如下: Java代码 ...  <Context path="" reloadable="true" docBase="hello"/>  ...  ...  <Context path="" reloadable="

Tomcat增加Context配置导致启动的时候项目加载两次问题解决方案

1. 出现场景 eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/.现在需要改成这样访问http://localhost.修改tomcat的server.xml文件,增加如下配置<Context path="" docBase="myapp" reloadable="false"/>,修改后host部分如下: <Host name=&qu

Spring学习(一)tomcat加载web.xml、以及项目集成Spring支持

tomcat容器加载web.xml 一. 1 .启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param> 两个结点. 2 .紧急着,容创建一个 ServletContext ( servlet 上下文),这个 web 项目的所有部分都将共享这个上下文. 3 .容器将 <context-param> 转换为键值对,并交给 servletContext . 4 .容器创建 <li

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke

解决jeecg3.5中由于easyui的原因会加载两次数据的问题

在解决完jeecgt3.5中的这个问题:jeecg3.5中实现从一个页面跳转到另一个页面 后,发现数据会被加载两次,在网上找了半天也没找到原因,最后发现是由于调用datagrid方法太快引起的,解决方法为使用setTimeout延迟执行datagrid方法,具体如下: $(function() { //延迟200毫秒执行,否则easyui会加载两次数据 setTimeout(init, 200); }); function init() { //alert($('#jeecgDemoList')

使用jqueryUI插件,easyui-datagrid,列表显示加载两次

第一次加载页面时,自己代码初始化话列表数据时加载了一次: 如果table控件中使用class="easyui-datagrid",该列表请求会加载两次: 例如:    <table id="dg" class="easyui-datagrid"></table> 解决方案:把table中的class="easyui-datagrid"去掉就可以了

Spring task配置,及解决加载两次的方法

? 关于 启动Task任务同时加载两次的解决方法:? 将spring MVC部分的定义另外建立一个文件,同时把Task配置放在此处,然后在web.xml文件中的处加载 <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-pa