みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

HTTPステータス404表示されてしまう

環境:Eclipce3.2、Tomcat5.5.2、JDK1.5.0_11を使用。

○サーブレットプログラム
package dispatch;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ForwardServlet2 extends HttpServlet
{
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request ,
HttpServletResponse response)
throws ServletException , IOException
{
PrintWriter out = response.getWriter();
out.println("Hello by Eclipse");
}
}

○web.xmlの内容は以下の通り
<web-app>
<!-- JSPC servlet mappings start -->
<servlet>
<servlet-name>ForwardServlet2</servlet-name>
<servlet-class>dispatch.ForwardServlet2</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ForwardServlet2</servlet-name>
<url-pattern>/ForwardServlet2</url-pattern>
</servlet-mapping>
<!-- JSPC servlet mappings end -->
</web-app>

アクセスはhttp://localhost:8080/basic/dispatch/ForwardServlet2

アクセスすると、

type ステータスレポート
メッセージ /basic/dispatch/ForwardServlet2
説明 The requested resource (/basic/dispatch/ForwardServlet2) is not available.

が表示されてしまいます。
何度も最初から作り直しては、見直しをしましたが
エラーになる原因をつかむことができない状態です。
間違い、不足している箇所がありましたら、ご指摘の程お願い致します。

投稿日時 - 2008-03-15 20:20:23

QNo.3865723

KGM

困ってます

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

 まず考えられる可能性は、
http://localhost:8080/basic/ForwardServlet2
でアクセスすると見えるかも知れないという事かな。

パッケージdispatchはあくまでJava側の話であって、コンテキストパスからの相対URLには何の関係もない。ここで、コンテキストパスとは/basicの事だ。もちろん、コンテキストパスが/basic/dispatchである可能性もあるが、それはあなたにしか分からない。TomcatのどこにそのWebアプリケーションをデプロイしたかが問題だ。

web.xmlの中では、servletタグによってフルクラス名(dispatch.ForwardServlet2)にForwardServlet2という名前をつけ、servlet-mappingタグによって名前をつけたForwardServlet2を/ForwardServlet2という「コンテキストパスからの相対パス」でアクセスできるようにしているんだ。だから、そのEclipseのプロジェクトにindex.jspを置いてみて、それが
http://localhost:8080/basic/inde.jsp
でアクセスできるのであれば、サーブレットには
http://localhost:8080/basic/ForwardServlet2
でアクセスする事になる。

説明が不足している箇所は、Tomcatのどこ(どんなコンテキストパス名)に君が作ったWebアプリをデプロイしているか、だな。URLが間違っている、という場合は、質問を受けている人がURLを構成できるだけの情報をあげんといけん。

投稿日時 - 2008-03-15 20:37:33

お礼

返信ありがとうございます。
教えていただきました手順を試し、理解をすることができました。
コンテキストパスへの理解が弱かったことが原因でしたので、
今後はここを中心に勉強していきます。
ありがとうございます

投稿日時 - 2008-03-16 19:50:33

あなたにオススメの質問