我有一个非常示例的 web.xml,写在下面:
问题是......如果我删除org.springframework.web.servlet.DispatcherServlet部分,我可以成功地将我的项目部署在 Tomcat7 中作为一个简单的 JSP-Servlet 应用程序。但是,一旦我使用 Spring MVC,我的部署将失败 - 遇到异常 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebMVCProj2]]
我该如何解决这个错误?
<?xml version="1.0" encoding="UTF-8"?>
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> Spring Web MVC 应用程序
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
<!-- I can remove the part below to make deployment successful -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
我从 Enterprise Bundle Repository (EBR) 添加 Spring MVC 依赖项。我还使用 Tomcat7 应该支持的 Eclipse Dynamic Web Module 3.0。我的 jre 是 Tomcat 和我的项目使用的 1.6.x 64 位。我还在 Eclipse 中使用 Web 部署程序集。
这是我的完整例外:
严重:部署 Web 应用程序存档时出错 E:\MyServers\apache-tomcat-7.0.30\webapps\WebMVCProj2.war java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: 无法启动组件 [ StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebMVCProj2]] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase. java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963) at org.apache.catalina.startup .HostConfig$DeployWar.run(HostConfig.java:1600) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 在 java.util.concurrent.FutureTask$Sync。innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent .ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread.run(Thread.java:662)