4

私は以下に書かれた非常にサンプルのweb.xmlを持っています:

問題は... org.springframework.web.servlet.DispatcherServletセクションを削除すると、プロジェクトを単純な JSP サーブレット アプリとして Tomcat7 に正常にデプロイできます。ただし、Spring MVC を使用すると、展開が失敗します - 例外 org.apache.catalina.LifecycleException が発生しました: コンポーネント [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 Deployment Assembly を使用しています。

ここに私の完全な例外があります:

SEVERE: Web アプリケーション アーカイブのデプロイ エラー E:\MyServers\apache-tomcat-7.0.30\webapps\WebMVCProj2.war java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [ StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebMVCProj2]] org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) で org.apache.catalina.core.ContainerBase.addChild(ContainerBase. java:877) org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) で org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963) で org.apache.catalina.startup .HostConfig$DeployWar.run(HostConfig.java:1600) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) で java.util.concurrent.FutureTask.run(FutureTask.java:138) で java.util.concurrent で innerRun(FutureTask.java:303) .ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)

4

2 に答える 2

2

web-inf フォルダーに applicationContext.xml が必要です。または、web.xml で contextConfigLocation を定義する必要があります。

<!-- Spring Context -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/application-contexts/*.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

例外トレースを投稿していただけると助かります。

于 2012-09-28T08:01:42.007 に答える