今天朋友发了个maven项目给我看,问我为什么启动不了。说实话,一直用Jfinal都快不会用spring了… 还是决定看看。
接收了文件,是maven构建的,打开eclipse,导入maven项目,然后部署到tomcat,启动tomcat,就报错了:“java.lang.ClassNotFoundException: org.springframework.web. servlet.DispatcherServlet”,错误信息如下图:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
很明显的第一反应就是没有SpringMVC的包,于是检查pom.xml,发现没有问题,spring web mvc包是正确引入了的,查看Maven Dependencies,发现也是正常的,打开jar包,也没有问题,web.xml配置也没有问题…
我去,难道jar包版本问题,于是部署了更高版本的jar包,并且还试过配置更高的JDK版本,依然报错,不能启动…
于是google,发现大部分人都是说没有导入jar包,没有部署成功,可是jar包我导入了,也配置正确了。
就在这时,突然看到有个人说tomcat是否部署成功,于是立刻查看网站部署的文件夹,发现WEB-INF下根本没有lib文件夹…
原因找到了,但是为什么没有正确的部署呢,突然想到有个叫“Deployment Assembly”的配置,马上打开项目属性,找到该栏配置,果不其然,Maven Dependencies果然没有配置到WEB-INF/lib下,于是立刻配置,如下步骤:
在项目上右键properties(应该是最后一项),打开如下界面
Add -> Java Build Path Entries -> Next -> Maven Dependencies -> Finish -> Ok,配置完后如下图:
完成后再次启动tomcat,Perfect,就搞定了!
PS:的确是这样的,因为对比正常项目之后就会发现,的确是少了那一项