Spring教程,part one,问题三......(facepalm here)
“Silent 404”意味着我从Tomcat获得一个带有空消息字段的标准404。
摘自Tomcat localhost..log:
сен 10, 2013 3:39:51 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet springapp as unavailable
сен 10, 2013 3:39:51 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /springapp threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
<stack trace omitted>
该课程位于spring-webmvc-4.0.0.M3.jar
,位于war/WEB-INF/lib/spring
:
bash-3.1$ pwd
/c/Users/mkumpan/Projects/Spring testing/war/WEB-INF/lib/spring
bash-3.1$ jar -tf ./spring-webmvc-4.0.0.M3.jar | grep DispatcherServlet
org/springframework/web/servlet/DispatcherServlet.class
...
我的build.xml中的classrefs都包含该路径:
<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*/*.jar"/>
</fileset>
<fileset dir="${appserver.lib}">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>
<path id="catalina-ant-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*/*.jar"/>
</fileset>
<fileset dir="${appserver.lib}">
<include name="*.jar"/>
</fileset>
</path>
不确定其他信息可能相关。 希望提出建议。死路一条。
答案 0 :(得分:2)
如果在应用程序部署时将spring-webmvc-4.0.0.M3.jar置于WEB-INF / lib / spring下,则tomcat将无法找到它。它必须直接放在WEB-INF / lib下。 (对于Tomcat和任何符合Java EE的servlet容器都是如此。)
答案 1 :(得分:1)
部署到应用服务器spring-webmvc-4.0.0.M3.jar
后,应位于/WEB-INF/lib
,而不是/WEB-INF/lib/spring
。因此,将该jar移至/WEB-INF/lib
或修复ant build以将其复制到生成的战争中
答案 2 :(得分:1)
将你的弹簧罐放在/ lib / spring文件夹中 - 一级升级。这将解决您的问题。
/ c / Users / mkumpan / Projects / Spring testing / war / WEB-INF / lib /应该包含你的弹簧罐。