背景:一个tomcat,一个eclipse,一个SSM框架的web项目。在eclipse中新建tomcat服务器,默认配置,然后在服务器配置中将Server Locations改成Use Tomcat installation并且将Deploy path换成tomcat安装目录下的webapps

现象: 将web项目部署到背景中的tomcat服务器中,运行项目。然后在eclipse的控制台中就会发现spring配置被执行了两次。如果想看到明显的现象,可以在项目中添加一个自启动的bean,并在自启动方法中向控制台打印信息。那么你将看到这些信息被打印了两次。也就是说,spring的bean被初始化两次。

解决方法:
方式一:将服务器配置中Deploy path路径webapps换一个名称,比如wtpwebapps
方式二:勾选Server Options中的Publish module contexts to separate XML files

原因: web项目启动时,由于

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

中的appBase中的值为webapps,tomcat加载到这里的时候,会去webapps文件夹下查找项目,并启动找到的项目,然后tomcat发现了webapps下刚好有一个部署的项目(Deploy path设置什么目录,项目就会部署到什么目录),所以这是第一次启动。接着,tomcat继续加载配置,然后就找到了

<Context docBase="projectName" path="projectPath" reloadable="true" source="org.eclipse.jst.jee.server:ssm-config"/>

于是,tomcat根据这个配置又加载了一次项目,这是第二次加载项目,所以在控制台可以看到两次初始化spring。

【问题记录】eclipse启动web项目时,spring会初始化两次的更多相关文章

  1. 使用Eclipse创建Web项目时WEB-INF下找不到web.xml问题详解

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yjrguxing/article/deta ...

  2. IntelliJ IDEA启动web项目时突然变慢的原因

    在使用IntelliJ IDEA开发web项目过程中,有两次项目启动非常慢,大约要200s的时间: 第一次忘记是怎么解决的,第二次出现后,我就直接重新下载了代码,然后部署,启动,时间有恢复正常,只用了 ...

  3. Eclipse使用Maven tomcat:run命令启动web项目时修改默认端口

  4. eclipse 导入web项目时常见错误

    1. JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java B ...

  5. Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹

    原文出处:https://blog.csdn.net/JYH1314/article/details/51656233 1.eclipse不像MyEclipse默认将项目部署到tomcat安装目录下的 ...

  6. eclipse创建web项目web.xml配置文件笔记

    1.使用eclipse创建web项目时,如果直接finish的话就没有默认生成web.xml配置文件,此时在你的项目下是看不到web.xml配置文件的,如果要查看的话可以如下操作: 右键你的项目,然后 ...

  7. Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)

    转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...

  8. Eclipse使用Maven tomcat:run命令启动web项目

    Eclipse安装好m2e插件,使用Maven构建项目后,启动web项目就行就非常简单了,你不再需要下载然后在eclipse中配置tomcat. 右键你的项目 -> Run As -> R ...

  9. eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本

    eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本 在使用 eclipse 创建 maven 项目的时候,默认的 web.xml 的版本时 2.3,默认 jre 的版本 ...

随机推荐

  1. C语言 printf格式化输出,参数详解

      有关输出对齐 int main(int argc, char* argv[]){ char insertTime[20] = {"1234567890"}; double in ...

  2. Centos7下ZABBIX安装全记录

    安装之前务必关闭SELINUX Install Repository with MySQL database : rpm -i https://repo.zabbix.com/zabbix/3.4/r ...

  3. Jedis(Java+Redis) Pool的使用

    今天试了一下Jedis里连接池JedisPool的的使用.代码如下: package com.myapp.jedis.pooldemo; import redis.clients.jedis.Jedi ...

  4. 奇特的JavaScript连续赋值运算

    一.引子: }; a.x = a = {n:}; alert(a.x); // --> undefined 以上第二句 a.x = a = {n:2} 是一个连续赋值表达式.这个连续赋值表达式在 ...

  5. angular - 如何运行在起来 - 使用nginx

    nginx下载地址,使用的是标准版的: 点击下载nginx nginx下载完后,解压 dist文件夹下面所有angular文件放入html文件夹中. 最后命令行cd到当前nginx.exe目录,启动命 ...

  6. 利用问答机器人API开发制作聊天类App

    缘起 很久没写项目了,所以单纯的想练练手,正好看到有问答机器人的接口,想到之前也做过聊天项目,为什么不实验一下呢.当然也是简单调用接口的项目,并没有真正的完成问答的算法等等.业余项目,功能不齐全,只实 ...

  7. Asp.Net北大青鸟总结(五)-数据绑定控件

        在前面的博客我已经介绍了关于一个特殊控件也是我们经经常使用到的控件gridview的使用实现真假分页.这也是属于绑定控件的一种使用.那么我们接下来来介绍一下数据绑定这门技术吧!  一.数据绑定 ...

  8. android开发中,在java中怎样使用c提供过来char*

    这个char*假设是一般的字符串的话,作为string传回去就能够了.假设是含有'\0'的buffer,最好作为bytearray传出,由于能够制定copy的length.假设copy到string, ...

  9. Android - 错误:Unable to instantiate application

    错误:Unable to instantiate application 本文地址: http://blog.csdn.net/caroline_wendy 错误:java.lang.RuntimeE ...

  10. hibernate 继承映射关系( TABLE_PER_CLASS)

    Person,Student,Teacher各创建一个表,主键用一个中间表生成.   package com.bjsxt.hibernate; import javax.persistence.Ent ...