アプリ版:「スタンプのみでお礼する」機能のリリースについて

eclipseを使用してTomcatのサーブレットをステップ実行でデバックしたいのですが
なぜかhttp404エラーが出てしまいます。何かeclips側で設定が漏れているのでしょうか。

当方の使用環境は
Windows7
tomcat6.0
Apache2.2(Tomcatと連携)
eclipse pleiades All in One for java Developers 3.6
です。

手順は以下の通り行いました。

・メニューのウィンドウ→ビューの表示→サーバーを選択。
・サーバービュー上で右クリック→新規→サーバーを選択。
・表示された画面で「サーバのタイプ:tomcat6.0」を選択し、サーバのホスト名に"localhost"を入力し「完了」ボタン押下。(その他の項目はデフォルト)
・メニューのファイル→新規→動的ウェブプロジェクトを選択。
・表示された画面でプロジェクト名を入力し完了ボタン押下(その他の項目はデフォルト)
・作成したプロジェクトを右クリック→新規→その他を選択。
・表示された画面でweb→サーブレットを選択し「次へ」押下。パッケージ、クラス名を入力して「完了」ボタン押下。
・作成されたクラスのdoGetメソッドを以下のように編集。

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{

response.setContentType("text/html; charset=Windows-31J");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>テストタイトル</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>テスト</h1>");
out.println("</body>");
out.println("</html>");
}

・クラス先頭のインポート文に「import java.io.PrintWriter;」を追記。

・プロジェクトを右クリック→デバック→サーバーでデバックを選択。
・表示される画面で「既存のサーバーを選択」を選択し「次へ」ボタン押下。
・構成済みのリソースに作成したプロジェクトがあることを確認して「完了」ボタン押下。

結果「http://localhost:8080/testWeb/」に自動的にアクセスするが以下のようなメッセージが表示されてしまう。
------------------------------------------------------------------------------
HTTPステータス 404
The requested resource () is not available.

--------------------------------------------------------------------------------

※eclipseからtomcatの起動と終了は正常にできているようです。

参考にしたURL
 http://www.od.eng.kansai-u.ac.jp/docs/eclipse-to …
 http://www.db.is.kyushu-u.ac.jp/rinkou/tomcat/ec …

「eclipseを使用してTomcatのサ」の質問画像

A 回答 (4件)

っていうより、TestTom.javaを右クリックで実行でできませんか?



デバッグをいきなりしようとしていますが、先ずは実行できるか確認ですね。
プロジェクトのビルドはしてますよね?自動的にビルドにチェックが入っていればOKですけど。

WTPプラグインを使っているようですので、お試しで特別なことが無い限り、web.xmlをさわる
必要ありません。

あと、エクリプスを使わないでtomcatサービスを起動してtomcatの起動画面が出るかどうかも
確認したほうが、もしかしたらよいかもです。
    • good
    • 0
この回答へのお礼

今までプロジェクト名で右クリックで実行しようとしてました。

TestTom.javaを右クリックした時と
プロジェクトを右クリックした時で動きが異なるんですね。
どっちでも同じことだと思い込んでいました。

Web.xmlを元に戻してTestTom.javaを右クリックで無事に実行できました。

また、eclipseを使わないで通常のTomcatに
デプロイしての動作もできましたので併せて報告いたします。

この度はありがとうございました。

お礼日時:2010/07/21 12:42

補足読ませていただきました。



下から9行目の<display-name>TestTom</display-name>はいりませんね。
上から3行目のがありますので。

あとは下から3行目の<url-pattern>/TestTom</url-pattern>
を<url-pattern>/servlet/tom.TestTom</url-pattern>
と変えればうまくいくと思いますよ。
    • good
    • 0
この回答へのお礼

デバックする際、右クリックした場所が悪かったようです。
Web.xmlは特に変更する必要はなかったようです。
この度はありがとうございました。

お礼日時:2010/07/21 15:15

補足のweb.xmlを見る限り、


http://localhost:8080/DynamicWeb/TestTom
でアクセスできそうですが。。。
(servlet-mappingを変更したようですが元に戻してください)

workspace\DynamicWeb\WebContent\WEB-INF\web.xml
はOKです。WEB-INFフォルダに配置してください。
    • good
    • 0
この回答へのお礼

デバックする際、右クリックした場所が悪かったようです。
java資産の上で右クリックしてデバックを実行したら無事に動きました。
ありがとうございました。

お礼日時:2010/07/21 15:14

eclipseだけでなく開発に対しても初心者ですが、web.xmlにサーブレットの登録とサーブレットの場所を示してないために404になっているのではないかと思います。



場所は パッケージ>WebContent>WEB-INF>lib>web.xml です。

開くと

<?xml version="1.0" encoding="UMF-8"?>
<web-app id="WebApp_ID" version="2.4" xmls=…>
<display-name>パッケージ名</display-name>
<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>
</web-app>

となっていると思うので、
<display-name>タグと<welcome-file-list>タグの間に追加してください。
サーブレットの登録のために

<servlet>
<servlet-name>サーブレット名</servlet-name>
<servlet-class>サーブレットクラス名</servlet-class>
</servlet>

と、サーブレットの場所を示すために

<servlet-mapping>
<servlet-name>サーブレット名</servlet-name>
<url-pattern>/servlet/サーブレットクラス名</url-pattern>
</servlet-mapping>

を追加してください。404の状態は解決すると思いますよ。
わからなければ、また質問してください。できる限り協力します。

この回答への補足

web.xmlというファイルですが
workspace\DynamicWeb\WebContent\WEB-INF\web.xml
にありました。lib配下に移した方がよろしいでしょうか。

また、開いてみたところ以下のようになっていまして
eclipseがサーブレットの場所などを自動的に入れてくれているようです。

tomというパッケージを作ってその中に
TestTomというサーブレットのクラスを置いています。

--------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>DynamicWeb</display-name>
<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>
<description></description>
<display-name>TestTom</display-name>
<servlet-name>TestTom</servlet-name>
<servlet-class>tom.TestTom</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestTom</servlet-name>
<url-pattern>/TestTom</url-pattern>
</servlet-mapping>
</web-app>
-------------------------------------------------------------------

これを踏まえてエラーの画面を確認しましたところ
http://localhost:8080/DynamicWeb/
にアクセスしようとしているようなので
web.xmlの<servlet-mapping>タグの部分を
以下のように変えましたが結果は変わりませんでした。
--------------------------------------------------------------------
<servlet-mapping>
<servlet-name>DynamicWeb</servlet-name>
<url-pattern>/DynamicWeb</url-pattern>
</servlet-mapping>
--------------------------------------------------------------------

補足日時:2010/07/21 00:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!