SpringMVCのweb.xmlのタグを削除したらどうなるか

SpringMVCのweb.xmlの<init-param>タグを削除したらどうなるか

デフォルトではSpringMVCのweb.xmlは以下のようになっているかと思います。

<!-- Processes application requests -->
<servlet>
  <servlet-name>appServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param> <!-- ここを削除する -->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

/WEB-INF/spring/appServlet/servlet-context.xmlと記述している部分を削除します。

<!-- Processes application requests -->
<servlet>
  <servlet-name>appServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

これでTomcatを起動すると、以下のようなエラーが出ます。

Could not open ServletContext resource [/WEB-INF/appServlet-servlet.xml]

どうも省略すると、web.xmlと同じ配置場所に、<servlet-name>タグの名前(appServlet)-servlet.xmlというファイルをデフォルトで読み込もうとするようです。

ということで、/WEB-INF/spring/appServlet/servlet-context.xmlをappServlet-servlet.xmlと名前を変更して、web.xmlと同じ階層に配置します。

SpringMVCのweb.xmlの<init-param>タグを削除したらどうなるか

これでTomcatを再起動してみます。起動時のログにエラーが表示されなくなり、無事起動することを確認しました。

コメント

タイトルとURLをコピーしました