最近一周出现怪事,tomcat有时无法正常启动,有时又正常。而且多是发生在project clean之后,或者maven的clean package之后。卡住后,过几分钟tomcat会佯装已经启动,但是访问页面出现404. OMG,这么诡异的问题。感谢某大神的帮助~
原因:依赖使用jar包是用maven 管理的,spring的配置文件中用到的spring版本和pom里的spring版本不一致。
解决方法:修改pom文件中spring的版本,将所有spring相关依赖指定在pom中。改完的pom:
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
意淫的原因:依赖的包版本冲突,每次运行时都试图从网上下载依赖,下载完和本地已有的依赖虽然版本不同但毕竟是两份依赖,启动时加载的顺序会影响冲突的发生,也就是概率性卡住。这种问题会发生在服务器联网的情况下。