• ベストアンサー

サーブレット実行について

コンパイルしてクラスファイルをつくって、トムキャット起動してURLからhttp://localhost:8080/YJKSample06/servlet/Sample10 と入力したら↓の様な画面が出ちゃいました。 HTTPステータス 404 - /YJKSample06/servlet/Sample10 type ステータスレポート メッセージ /YJKSample06/servlet/Sample10 説明 The requested resource (/YJKSample06/servlet/Sample10) is not available. Apache Tomcat/5.5.9 Sample10クラスとSample1クラスは同じ場所にあり、Sample1の方は        いらっしゃいませ!         お選びください。          りんご          みかん          いちご みたいな感じで画面表示されます。 Sample1とSample10は同じ場所にあり、Sample10もコンパイルされてクラスができたってことはソースに間違いなかったのでは??と、思うのです。 この違いに何かご存知の事がありましたらお教えいただけたらうれしいです。 過去この様なことを経験なさってる方のアドバイスもお待ちいたしております。 どうか宜しくお願いいたします。 情報が足りないようでしたら補足させていただきます。

  • yuki22
  • お礼率83% (159/190)
  • Java
  • 回答数7
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

予備知識として書いておきます。暇なら読んでください。<servlet>タグ内の<servlet-name>要素と<servlet-mapping>タグ内の<servlet-name>要素は同じです。要するに<servlet>親タグで、<servlet>の名前を決めて、以降の親タグ(例えば<servlet-mapping>タグ)でもこの名前は使用します。 又、親タグ<servlet-mapping>内の<url-pattern>要素は、ブラウザのアドレスバーに打つアドレスを決めるものです。この場合ですと、<url-pattern>タグで「/servlet/Sample1」と指定していますので、ブラウザのアドレスバーでもhttp://localhost:8080/YJKSample06/servlet/Sample1とします。これが仮に<url-pattern>/hogehoge</url-pattern>と指定しますと、http://localhost:8080/YJKSample06/hogehogeでアクセスできます。 server.xmlも同じようなものです。Javaで使うXMLなど簡単なものですから、やさしいXMLの本を買ってべんきょうしてくださいな。がんばってください。

yuki22
質問者

お礼

できました^^ 今更ながらですが、サーブレットはHTML、java、XMLと必要なのですね・・、こんなに大変とはです。 まだまだ必要になる知識とかあるとおもいますが、少しずつ進んで行こうと思ってます。 この度も大切なお時間をお分けいただけて、本当にありがとうございます。 このお礼文を最後にお話できなくなるのはさびしいですがポイント発行させていただきますです。 ありがとうございました^^

その他の回答 (6)

回答No.6

ああ、#5の下からweb.xmlの下から2行目の</webapp>は削除してください。 間違えてしまいました。すみません。Javaのソースコードもそうですが、web.xmlも1文字でも間違えると動きませんので(;^^

回答No.5

ああ、Javaはご無沙汰なので、#3で動かなかったら以下にしてください。多分動くと思います(90%くらい)。でも忘れちゃってますので(;^^ <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>YasaJava</display-name> <description>YasaJava </description> <servlet> <servlet-name>Sample1</servlet-name> <servlet-class>Sample1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample1</servlet-name> <url-pattern>/servlet/Sample1</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample10</servlet-name> <servlet-class>Sample10</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample10</servlet-name> <url-pattern>/servlet/Sample10</url-pattern> </servlet-mapping> </webapp> </web-app> 全文、コピペでいいですよ。

回答No.4

やはり、web.xmlが違います。 サーブレットはコンパイルしたらweb.xmlに新規に追加記述しないといけないのです。具体的には、以下のように変更してください。 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>YasaJava</display-name> <description>YasaJava </description> <servlet> <servlet-name>Sample1</servlet-name> <servlet-class>Sample1</servlet-class> <servlet-name>Sample10</servlet-name> <servlet-class>Sample10</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample1</servlet-name> <url-pattern>/servlet/Sample1</url-pattern> <servlet-name>Sample10</servlet-name> <url-pattern>/servlet/Sample10</url-pattern> </servlet-mapping> </web-app> ちなみに、web.xmlは記述順番が正しくないといけないので、上のとおり書いてください。これから、タグライブラリとか使うとさらに追加記述します。web.xmlとserver.xmlはきちんとかけないと困りますので、xmlの初歩的知識で十分ですから、1冊XMLの簡単な本を読んでください。 上の記述ではSample1とSample10しか動かないので適宜追加してください。大変でしょうが、がんばってくだっさい。

yuki22
質問者

お礼

カムさん、こんなに沢山のアドバイスをありがとうございます。 以前も最後まで見捨てないで助けてくれましたね・・。 感謝の言葉もございません。 javaも少しずつ勉強進めている中で、サーブレットも勉強してみようかな??ってところまでこれました。 何のお礼も出来ないですが、お分けいただいた知識を無駄にしないように大切に育てていくつもりです。 あ、長々とごめんなさい。さっそくためさせて頂きます^^; 解らない事がありましたら、またお聞きしたいので締め切りはほんの少しだけお待ちください。ポイントすぐに発行いたします。 本当にありがとうございます^^ ではでは、少しだけお待ちください。

  • guineness
  • ベストアンサー率36% (14/38)
回答No.3

インポートしただけでは駄目です。 継承してください。 Sample1 をみてください。 public class Sample1 extends HttpServlet って書いてあるはずです。

yuki22
質問者

お礼

わわ、またお返事いただけてありがとうございます。 あ、ごめんなさいです。継承してましたです。 拡張やスレッドとかでextendsは解ってたのに・・本当にごめんなさい。 いろいろサーブレット勉強サイトとかで調べてみてもwed.xmlをどうしろって書いてなくて、何のことなのか解らなくて・・・。 大切なお時間をごめんなさい。 よろしければまたご指導いただけたらうれしいです。 ありがとうございました。

回答No.2

もうだいぶ時間がたってしまいましたが、できましたかね? 本当に同じフォルダにあるか確認してください。Sample1とSample10は同じフォルダにありますか? あれば、#1様がおっしゃるようにweb.xmlの問題だと思います。一度、web.xmlとSample10のソースファイルを見せてください。そうすれば、すぐ解決すると思いますよ。

yuki22
質問者

補足

お返事ありがとうございます。 わわ、2回もお答えいただけるなんて大変ありがたいです。ソースは・・ import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Sample10 extends HttpServlet { public void doGet(HttpServletRequest request,  HttpServletResponse response)  throws ServletException  {  try{   response.setContentType   ("text/html; charset=Shift_JIS");   Date dt = new Date();   PrintWriter pw = response.getWriter();   pw.println("<html>\n"    + "<head><title>サンプル</title></head>\n"   + "<body><center>\n"   + "<h2>ようこそ</h2>"    + "<hr />\n"    + "今" + dt + "です。<br />\n"    + "選んでください<br />\n"    + "<br />\n"    + "<a href=\"../PP1.html\">帽子</a><br />\n"   + "<a href=\"../PP2.html\">スカート</a><br/>\n"   + "<a href=\"../PP3.html\">ブーツ</a><br />\n"   + "</center></body>\n"   + "</html>\n");    }    catch(Exception e){    e.printStackTrace();     }  } }     です。そして、wed.xmlが <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>YasaJava</display-name> <description>YasaJava </description> <servlet> <servlet-name>Sample1</servlet-name> <servlet-class>Sample1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample1</servlet-name> <url-pattern>/servlet/Sample1</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample2</servlet-name> <servlet-class>Sample2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample2</servlet-name> <url-pattern>/servlet/Sample2</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample3</servlet-name> <servlet-class>Sample3</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample3</servlet-name> <url-pattern>/servlet/Sample3</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample4</servlet-name> <servlet-class>Sample4</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample4</servlet-name> <url-pattern>/servlet/Sample4</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample5</servlet-name> <servlet-class>Sample5</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample5</servlet-name> <url-pattern>/servlet/Sample5</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample6</servlet-name> <servlet-class>Sample6</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample6</servlet-name> <url-pattern>/servlet/Sample6</url-pattern> </servlet-mapping> <servlet> <servlet-name>SampleP1</servlet-name> <servlet-class>SampleP1</servlet-class> </servlet> <servlet-mapping> <servlet-name>SampleP1</servlet-name> <url-pattern>/servlet/SampleP1</url-pattern> </servlet-mapping> <servlet> <servlet-name>SampleP2</servlet-name> <servlet-class>SampleP2</servlet-class> </servlet> <servlet-mapping> <servlet-name>SampleP2</servlet-name> <url-pattern>/servlet/SampleP2</url-pattern> </servlet-mapping> </web-app> です。・・・長々と申しわけございません。 あの・・、もしこのxmlが問題だとしたら、プログラムするためにはこのxmlと言うものも書ける様でないとダメなのでしょうか?? サーブレットは初心者なので・・ごめんなさい。 お返事いただけたらうれしいです。

  • guineness
  • ベストアンサー率36% (14/38)
回答No.1

予測 1: コンパイルはできているが、HttpServletを継承してない。 2: web.xmlの記述の問題

yuki22
質問者

お礼

お返事ありがとうございます。 継承・・・うう、ごめんなさい、インポートするだけではだめなのでしょうか・・。 1.2を調べてみます。 ご指導ありがとうございました^^

関連するQ&A

  • java servlet tomcat エラー

    サーブレット用のクラスファイルがwebページ (http://localhost:8080/examples/servlet/HelloWorldServlet) で見ることができないんですがなんででしょうか? http://localhost:8080にはアクセスできるからtomcatは正常に起動してるんですが。 ちなみにファイル HelloWorldServlet.class はtomcat 6.0\webapps\examples\WEB-INF\classesに保存してあります。 エラー内容は下記のようになっています。 ーーーーーーーーーーーーーーーーーーーーーーーーーーー HTTPステータス 404 - /examples/servlet/HelloWorldServlet type ステータスレポート メッセージ /examples/servlet/HelloWorldServlet 説明 The requested resource (/examples/servlet/HelloWorldServlet) is not available. ーーーーーーーーーーーーーーーーーーーーーーーーーーー

  • サーブレットの実行について

    本を読んでjavaの勉強をしているのですが、本が 古いせいか、サーブレットの実行がうまくいきません。 いろいろ検索し下記サイトを参考にして、 http://www.hellohiro.com/servlet.htm まずTomcat(apache-tomcat-4.1.36)をダウンロードし、 下記のように環境変数を設定しました。 JAVA_HOME-- C:\j2sdk1.4.2_16 CLASSPATH-- .;%JAVA_HOME%lib\tools.jar PATH -- C:\j2sdk1.4.2_16\bin そしてファイルをコンパイルし、本のとおりに Tomcat下にYJKSample\06\web-INF\classesとフォルダを作成、 コンパイルしたクラスファイルをclasses内に置き、 http://localhost:8080/YJKSample/06/servlet/Sample1 と指定してみましたがうまくいきません。 ところがサイトのとおりにTomcat\webapps\examples\WEB-INF\classes 下にクラスファイルを置いて、 http://localhost:8080/examples/servlet/Sample1 と指定するとうまくいきました。 本を読み進めるにあたって、やり方がかなり違ってくるため できれば本のとおりにやりたいのですが、うまくいく方法は ないでしょうか? 何がいけないのかわからず頭を痛めています。 どなたかお知恵をいただけると幸甚です。 ちなみにOSのバージョンはWindows XP HomeEditionです。 どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • TOMCATでのサーブレット環境構築

    初心者です。 Tomcat4.1を使ってサーブレットを動かしたいと思います。 manage/installを使ってWebアプリをインストールするところまではわかりました。 ディレクトリ[c:\java\test\]の配下に [WEB-INF\classes\]というディレクトリを掘って そこにtest.javaとそれをコンパイルしたtest.classがあります。 この状態で http://localhost:8080/manager/install?path=/test&war=file:c:/java/test といれ、testというwebアプリをインストールしました。 listでも確認し、登録されていました。 しかし http://localhost:8080/test/servlet/test とやっても動作しません。 HTTP 404エラーがでます。 (description The requested resource (/test/servlet/test) is not available.) 何が足らないのでしょうか?ご指示をお願いします。 できればわかりやすく解説してあるサイトとかを教えていただければありがたいです。 ちなみにサンプルではいってたexamplesのサーブレットは動作します。 環境はWindows2000です。

    • ベストアンサー
    • Java
  • サーブレット起動後、HTTP404エラーが表示

    HTTP404エラーが表示され、どこを修正すればよいのかわかりませんので、どなたか教えて頂けないでしょうか?正直非常に困っておりますので、よろしくお願いいたします。java初心者です。 (状況の詳細) Eclipseでservletを実行すると以下の表示がされてしまい正常に処理されません。 HTTPステータス 404 - -------------------- type ステータスレポート メッセージ / 説明 The requested resource (/) is not available. ----------------------------------------- Apache Tomcat/7.0.26 実行環境 Eclipse3.7  (動的Webプロジェクトを作成し、デフォルト出力フォルダーをWebContent/WEB-INF/classesとしています。) java6 servlet3.0 Tomcat 7.0 利用文献:Eclipseで学ぶはじめてのサーブレット&JSP(SoftBankCreative)の第5章のSelect.javaを実行 以上、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • tomcatが動かなくなりました。動かすにはどうしたらいいですか?

    tomcatが動かなくなりました。動かし方を教えてください。 eclipseでtomcatプラグインまで入れて動作を確認できました。 最後にテスト用のプロジェクトをいくつも消した後、 tomcatが動きません。service status : startedになりますが http://localhost:8080/にアクセスしても HTTPステータス 404 - / type ステータスレポート メッセージ / 説明 The requested resource (/) is not available. Apache Tomcat/5.5.28 としか出てきません。 どうやったらいいですか?

  • 作成したサーブレットが表示されません(Tomcat使用)

    はじめまして。 本を見ながらサーブレットを作成、実行したところエラーに 検索するも知識が浅いために理解できず、行き詰ってしまいました。 解決法ご存知の方おられましたら、ご教示いただけますと幸いです。 ************ (略)Tomcat 5.5\webapps\kajsp\WEB-INF\classesの直下にhello_servlet1.classを置き実行したところ、以下のエラーが… ************ HTTPステータス 404 - /kajsp/hello_servlet1 ------------ ステータスレポート /kajsp/hello_servlet1 The requested resource (/kajsp/hello_servlet1) is not available. ------------ Apache Tomcat/5.5.20 ************ web.xmlファイルは以下のとおりです。WEB-INF直下に置きました。 ************ <?xml version="1.0" encoding="Windows-31J"?> <servlet> <servlet-name>hello_servlet1</servlet-name> <servlet-class>hello_servlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello_servlet1</servlet-name> <url-pattern>hello_servlet1</url-pattern> </servlet-mapping> ************ http://localhost:8080/ は見る事ができるのですが、 http://localhost:8080/kajsp/hello_servlet1 ではエラーが出ます。 ************ 環境は Windows XP Home(SP2) JDK JRE:1.5.0_09 Tomcat:5.5 です。 初歩的な質問で申し訳ありませんが、よろしくお願い致します。

    • ベストアンサー
    • Java
  • Tomcatの設定について、404エラー

    本日の質問は、Tomcatのエラー404になります。 PCの環境OS:Windows7 JSPを始めるつもりで、下記のものをインストールしました。 javaのJDKをインストール済で、 Tomcat/7.0.32をインストールしました。 C:\Tomcat7\webapps\Sample_JSP\Sample_01.jsp C:\Tomcat7\webapps\Sample_JSP\WEB-INF\Sample_01.xml 環境変数   変数名:CATALINA_HOME   変数値:C:\Tomcat7 という感じで、Webページを参考にファイルを作り、 http://localhost:8080/は、表示させることができ、 http://localhost:8080/Sample_JSP\Sample_01.jspについても 表示出来ましたが、 http://localhost:8080/のページの HTTPステータス 404 - /manager/status HTTPステータス 404 - /manager/html HTTPステータス 404 - /host-manager/html どのページも、説明 The requested resource is not available. と出て、 Webページがが表示しません。 少し調べた所によると、tomcat-users.xml このファイルを なんか設定するように有り、admin の設定が入ってなかったので、 付け加えてみたり、削除してみたり、再起動もしました。 初心者なので、どこがおかしいのか良く解りません。 参考になるページでもありましたら、 どうか、よろしくお願いします。

  • JSPファイルは参照できましたが、サーブレット不可

    JSPファイルは参照できましたが、サーブレットが上手く行きません Eclipse(Ver3)+Tomcat6を使用し、「サーブレット&JSP 逆引き大全」のコーディングを行っております。 JSPファイルは参照できましたが、サーブレットが上手く行きません 表示しようとすると下記エラーが出ます。 The requested resource (/myapp/Sample014/) is not available. ◎web.xmlの設定 [省略]・・・・・・・・・・・・ <servlet> <servlet-name>Sample014</servlet-name> <servlet-class>com.gokui.Sample014</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample014</servlet-name> <url-pattern>/Sample014</url-pattern> </servlet-mapping> [省略]・・・・・・・・・・・・ ◎ロケーション D:\Users\ueda\workspace\myapp\WEB-INF\web.xml ◎状態 ・http://localhost:8080/myapp/Sample015.jsp は表示される。 ・http://localhost:8080/myapp/Sample014/ は表示されず。 下記URLは参照したのですが、未解決です。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1158881041 http://www.javaroad.jp/bbs/answer.jsp?q_id=20100904015203906 アドバイス頂けると有り難いです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • サーブレットにて、HTTP404エラーについて

    プログラミング初心者のものです。サーブレットについて勉強しているのですが、どうしてもHTTP404エラーが解消されません。 http://localhost:8080/entry/HelloServlet とURLに入力すると type ステータスレポート メッセージ /entry/HelloServlet 説明 The requested resource (/entry/HelloServlet) is not available. となってしまいます。なにかミスや指摘があればお願いします。 ファイル名 HelloServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ PrintWriter out = response.getWriter(); out.println("Hello"); } } ファイル名 web.xml <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> </web-app> HelloServlet.javaは、 C:\servletbook\apache-tomcat\webapps\entry\WEB-INF\classes に格納されており、web.xmlは C:\servletbook\apache-tomcat\webapps\entry\WEB-INF に格納されてます。

    • ベストアンサー
    • Java
  • サーブレットファイル 404

    OS はWindows 8で、JDK 6 、Tomcat 6です。 今朝からサーブレットやjspのリンクを叩いても 「 ~を開くことが出来ません。インターネットサイトのレポートによるとリクエストしたアイテムが見つかりませんでした。(HTTP/1.0 404) 」 としか出なくなりました。昨日までは表示されていたんですが・・・ http://localhost:8080/で左上に猫のロゴがあるページは表示されます。 例としてSample1.javaがありますが、 アドレスはhttp://localhost:8080/自分のフォルダ/servlet/Sample1で このサーブレットファイルはC:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\自分のフォルダ\WEB-INF\classesにあります。  web.xml(C:\Users\自分の名前\Desktop\プログラム\Java基本\java_prc\YJK_ish\WEB-INFの直下に有) を確認しても <servlet> <servlet-name>Sample1</servlet-name> <servlet-class>Sample1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample1</servlet-name> <url-pattern>/servlet/Sample1</url-pattern> </servlet-mapping> と入っています。 一応8080でバッティングさせないようにPHPで使う方のApache のサーバーもhttpd -k stopで止めておきました。 考えられる原因は何でしょうか? 他に確かめる方法は無いのでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう