###やっていること
Eclipse(Neon Pleiades All-in-one)を使用し
** Maven プロジェクト**で Web(war)アプリを
作成しています。
###問題点
簡単なサーブレット1個のプロジェクトを作成し packageフェーズまで
ビルドし、Eclipse の Servers に追加した Tomcat8 に
プロジェクトを追加して「開始」すると、何の問題もなく動きます。
ところが、
・プロジェクトを serversのtomcat8 から除去
・プロジェクトをF2(リファクタリングの名称変更)でリネーム
・プロジェクトの war を clean/package で再ビルド
・プロジェクトを serversのtomcat8に再追加
・serversのTomcat8を開始
とすると、Tomcat8は問題なく、エラーメッセージもなく起動しますが
サーブレットの URL を叩いても
The requested resource is not available.
と画面に出るだけです。
プロジェクト名を元に戻しても治りません。
但し、生成される war を直接 Tomcat8 の webapps に置き、
startup.bat で tomcat8 を起動すれば、サーブレットは問題なく
動きます。
また maven の jettyプラグインや tomcatプラグインでも
正常に動きます。動かないのは WTP を使って起動した場合だけです。
###該当のソースコード
サーブレット
package info.nakamuri.app.spikes.mavenbasics.hellotest; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Hello") public class HelloWorld extends HttpServlet { private static final long serialVersionUID = 1L; public HelloWorld() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/jsp/hello.jsp"); rd.forward(request, response); } }
JSP(WEB-INF/jsp/hello.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello World</title> </head> <body> <h1>こんにちは</h1> </body> </html>
###試したこと
同様な試験を struts2 等の各種プロジェクトでも行い、
warのmavenアプリなら再現することを確認しましたが
いろいろなアプリのエラーメッセージから
どうやら、クラスパスが正しくないことがわかってきました。
おそらく WTP で起動する場合に使うクラスパス関連の設定が壊れて
いると思うのですが、そんな設定がどこにあるのか、未だ見当が
付きません。
ご存知の方が居られましたらよろしくお願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。