0

Spring教程,第一部分,问题三......(在这里面)

“静默 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 中的两个类引用都包含该路径:

<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>

不确定还有哪些其他信息可能相关。希望提出建议。又是死胡同。

4

3 回答 3

2

如果部署应用时spring-webmvc-4.0.0.M3.jar放在WEB-INF/lib/spring下,tomcat会找不到。它必须直接放在WEB-INF/lib 下。(这适用于 Tomcat 和任何符合 Java EE 的 servlet 容器。)

于 2013-09-10T13:06:59.543 回答
1

部署到应用服务器后spring-webmvc-4.0.0.M3.jar应位于/WEB-INF/lib,而不是/WEB-INF/lib/spring。因此,将那个 jar 移动到/WEB-INF/lib或修复 ant build 以在由此产生的战争中复制它

于 2013-09-10T13:06:30.640 回答
1

将您的弹簧罐从 /lib/spring 文件夹中取出 - 上一层。这将解决您的问题。

/c/Users/mkumpan/Projects/Spring testing/war/WEB-INF/lib/ 应该包含你的spring jars。

于 2013-09-10T13:09:33.543 回答