新しいSpringプロジェクトをセットアップしようとすると、コントローラーにルーティングされると予想されるページに移動すると、このエラー(HTTPステータス404 - サーブレットnewspringが利用できません)が発生するという問題が発生します。
web.xml
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
そこで、Tomcat のログを調べたところ、次の例外が表示されました。
SEVERE: WebappClassLoader デリゲートの読み込みエラー: false
リポジトリ: /WEB-INF/classes/ ----------> 親クラスローダー: org.apache.catalina.loader.StandardClassLoader@a1807c org.springframework.web.servlet. DispatcherServlet java.lang.ClassNotFoundException: org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) の org.springframework.web.servlet.DispatcherServlet java:1233) org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095) org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) org.apache.catalina.core .StandardContext.loadOnStartup(StandardContext.java:4149)
しかし、欠落していると思われるクラスは、実際には WEB-INF/libs (tomcatfolder/webapp/newSpring/WEB-INF/libs) に存在する spring-webmvc.jar に存在します。
ここが見えない?