最近在eclipse中使用maven来写ssm。
在maven中,
添加ssm的相关jar包只需要在pom.xml的<dependencies>标签中添加相应的依赖jar包就行了,确实非常方便。
但偶尔使用maven时也会遇到jar下载完毕,却项目在Tomcat中不能运行。
我再三确认,我编写的源文件时没有问题的。
有时同一个项目的代码,在A电脑上可以编译运行,在B电脑上却不能编译运行。
我这时就怀疑是jar包损坏了。
首先我先在在项目的Java Build Path下查看Libraries,下面的jar没有显示错误。
但我任然怀疑jar包损坏,
然后我在maven项目中一个一个点击jar包下面的方法查看,发现有的jar包出现invalid LOC header (bad signature),无效的 LOC 头 (错误签名)。
我在网上查资料,说直接复制一个jar,把损坏的jar包覆盖掉就行了。
这种办法虽然可行,但因为我是ssm整合的项目,jar太多,我也不好一个一个的确定有多少jar包损坏了,我就在maven的本地仓库。把整个maven的本地仓库给删掉。
重新配置maven的本地仓库,去我指定的镜像仓库重新下载所需的jar包。
等待下载完毕,启动Tomcat,运行测试代码。
发现只能进入首页,即index.jsp页面,在里面点击使用注解跳转页面,所有的跳转链接全部都为404错误。
我重新再Debug模式下启动Tomcat,在方法下打断点,点击跳转页面。发现依然是404错误,根本就不能进入我编写的方法。
我Update Maven Peoject项目,还是不能进入方法。在log4j中查看编译信息,很笼统的说没有找到mapper。我查看代码,确认代码是正确的。
在Markers中也没有错误提示。
这时我就非常不理解错误在哪里了。
请教了好多人,自己也去网上找资料,
进行各种尝试,好一阵忙活,依然没有解决问题。
最后我实在没有办法,就用了一个最笨的方法,
我将eclipse给删掉,
eclipse的工作空间workspace整个给删掉,
我以前使用的maven的本地仓库整个给删掉。
重新解压eclipse,选择一个空白的workspace,
重新再eclipse中配置好maven,tomcat。
再来导入项目,等待maven下载jar包。下载完了jar包,启动tomcat运行测试。
在Debug测试方法,这次就能进入方法了,我进行各种尝试,都没有问题。
谢天谢地,终于成功了!
我猜想,是eclipse的环境问题。
具体环境有什么问题,因我知识不足,水平有限,不能解答。