本文主要是介绍Tomcat的项目在windows下能访问而在linux下却不能访问的一个问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、问题描述
今天把windows下部署的SSH项目复制到linux的tomcat服务器上,发现怎么访问都是报404错误,而此前部署到windows上的tomcat完全可以访问,而且我之前在linux下部署的项目也能访问。后来在linux下关闭tomcat后,用带有命令行输出的指令启动tomcat:
-- 关闭tomcat
# ./shutdown.sh-- 带有命令行日志输入方式启动tomcat
# ./catalina.sh run
发现报了如下错误:
java.lang.NoSuchMethodError:org.springframework.beans.factory.support.DefaultListableBeanFactory.setSerializationId(Ljava/lang/String;)V
2、问题分析
因为linux的tomcat启动的时候这个项目报错,所以这个项目没有初始化,其他项目则初始化完成了。因此在浏览器上输入这个项目的地址都是报404的。
3、解决过程
经过反复上网查找答案之后,我发现这篇文章:
http://wenku.baidu.com/link?url=NkHvx8fx17eKWEJNWViXB6SmZmkNXCa9rCTiN-uYj9mLV0sNNJ2P5ZgqNftYCshxI98q_k1NwMzT0O_rqPzmfYpvjrUAmxxHu_bJVFHBc73
这篇文章说是spring.jar和org.springframework.*等包冲突,我起初还不信,因为项目从myeclipse部署到windows的tomcat时都没有报错,最后无奈之下检查了一下项目/WEB-INF/lib下的包,发现真的是有org.springframework.*.RELEASE.jar和spring.*.jar这两种包,然后再上网了解到spring3.0包含了2.0的包了所以spring.2.0这些包是多余冲突的。于是我把spring.2.0的几个包的后缀名改为.bak测试一下。截图如下:
用 # catalina.sh run 启动tomcat时真的没有了错误,项目也能正常访问了。
4、简单总结
我觉得之所以在windows下启动tomcat时没有报错是因为myeclipse启动tomcat时默认消除包冲突,或者其他原因。以后要多注意SSH项目包冲突的问题,特别是版本和兼容性问题。
参考:http://wenku.baidu.com/link?url=NkHvx8fx17eKWEJNWViXB6SmZmkNXCa9rCTiN-uYj9mLV0sNNJ2P5ZgqNftYCshxI98q_k1NwMzT0O_rqPzmfYpvjrUAmxxHu_bJVFHBc73
这篇关于Tomcat的项目在windows下能访问而在linux下却不能访问的一个问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!