0

私は Apache Tomcat 7 を使用していますが、それは ON です - Spring 3 で、クラスパス (コンパイルとランタイム) にすべてのライブラリがあります。

それは /WEB-INF/ web.xmlの私の web.xml ファイルです:

<context-param> 
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/dispatcherServlet-context.xml</param-value> 
</context-param>  

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

それは WEB-INF/ dispatcherServlet-context.xmlの私のコンテキスト ファイルです:

<!-- Scans within the base package of the application for @Components to configure as beans -->
<context:component-scan base-package="controllers" />

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

http://localhost:8080/projectname/ブラウザに入れたときのTomcatエラーは次のとおりです。

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]; 

ネストされた例外は java.io.FileNotFoundException: ServletContext リソースを開けませんでした [/WEB-INF/dispatcherServlet-servlet.xml] ecc ecc ecc

このエラーは、 dispatcherServlet-context.xmlではなく、 dispatcherServlet -servlet.xmlファイル(私が使用、作成、およびマップしたもの)に関するものであることに注意してください。

みんなありがとう!

4

2 に答える 2

2

Spring MVC では、ディスパッチャー サーブレット構成のデフォルトの場所は /WEB-INF/[SERVLET-NAME]-servlet.xml です。サーブレット宣言に init パラメータを追加することで、これを再構成できます。

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            [PATH-TO-YOUR-FILE]/[CONFIG-FILE-NAME].xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
于 2013-04-12T15:04:10.493 に答える
1

取り除くだけ

<context-param> 
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/dispatcherServlet-context.xml</param-value> 
</context-param>  

スニペットを作成し、名前を に変更dispatcherServlet-context.xmlしますdispatcherServlet-servlet.xml。原因: Spring と Spring MVC には 2 つの異なる構成ファイルがあります。Spring Framework で Spring MVC 構成を使用しようとしました。

So for Spring : pass how many you want config files via `contextConfigLocation`
For Spring MVC : /WEB-INF/<dispatcher_servlet_name>-servlet.xml.

Spring MVC ケースのデフォルト名を変更できます (@Stefan Lindenberg の回答を参照)。

于 2013-04-12T15:03:13.360 に答える