首页 > 系统服务 > 详细

Eclipse启动项目正常,放到tomcat下就报错的一例

时间:2019-02-14 18:57:17      阅读:348      评论:0      收藏:0      [点我收藏+]

一个老的ssh的项目,进行二次开发(增加一些新功能)后,首先用Eclipse中集成的Tomcat启动没有任何问题,但是把启动后的webapps下得目录放到 windows的普通tomcat下启动,居然启动不起来

报错如下:

技术分享图片

技术分享图片

 

 

各种折腾,首先发现,在win下的Tomcat目录conf下得配置文件 server.xml 中的最后部分,host标签中多了一个这个标签

<Context path="" docBase="。。。。。。。。。。 />
技术分享图片

 

 
里面有个 eclipse的引用,直接把这行标签删掉,再次启动,异常改变了。说明解决了一些问题。


然后异常是有两处报:

Unsupported major.minor version 52.0解决办法

根据上面链接,找到解决办法为修改 eclipse中当前项目的三处jdk版本,但是修改过程中又报错:

Project facet jst.web.jstl has not been defined.

解决方法,参见上文。

然后,终于,项目可以在 windows 的 对立 Tomcat中启动了。


但是将其拷贝到Linux中运行,继续报错

查看日志,报错如下:
技术分享图片

 

 

java.lang.NoClassDefFoundError: org/springframework/core/env/ConfigurableEnvironment

各种百度,均不能解决问题。

后来同事找到解决方法:

删除项目中的一个 spring jar包:
技术分享图片

问题解决。

 

原因:

项目是个老项目,没有用maven关联jar包,除了常规依赖外,其他jar包都是放在 WEB-INF的lib目录下:

技术分享图片

我们看到,实际上,项目中有两个 spring-context jar包,可能导致了冲突。

下面这个jar是5.0版本的,而其它spring相关jar都是3.0版本的。

 

其实是因为同事增加了一个定时任务的功能,在定时任务功能的代码中用到了一个注解:

技术分享图片

就是这个注解,据说它是 spring-context 4.0以上jar包中才有的,因为报错,所以同事引入了 spring-contxt 5.0 的jar包,但是5.0的jar包中可能需要依赖spring core等其他spring高版本的jar包,而我们项目中其他所有的spring jar包都是 3.0版本的,而且有两个contxt jar,这些都有可能导致了

 ConfigurableEnvironment 异常的发生。

 

所以,解决版本就是,删掉 spring-contxt 5.0 的jar包,同时注释掉报错的代码及其关联代码:

技术分享图片

 



 

Eclipse启动项目正常,放到tomcat下就报错的一例

原文:https://www.cnblogs.com/libin6505/p/10376376.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!