- ベストアンサー
サーブレット実行について
コンパイルしてクラスファイルをつくって、トムキャット起動して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もコンパイルされてクラスができたってことはソースに間違いなかったのでは??と、思うのです。 この違いに何かご存知の事がありましたらお教えいただけたらうれしいです。 過去この様なことを経験なさってる方のアドバイスもお待ちいたしております。 どうか宜しくお願いいたします。 情報が足りないようでしたら補足させていただきます。
- みんなの回答 (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の本を買ってべんきょうしてくださいな。がんばってください。
その他の回答 (6)
- kamkamkam3
- ベストアンサー率42% (216/514)
ああ、#5の下からweb.xmlの下から2行目の</webapp>は削除してください。 間違えてしまいました。すみません。Javaのソースコードもそうですが、web.xmlも1文字でも間違えると動きませんので(;^^
- kamkamkam3
- ベストアンサー率42% (216/514)
ああ、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> 全文、コピペでいいですよ。
- kamkamkam3
- ベストアンサー率42% (216/514)
やはり、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しか動かないので適宜追加してください。大変でしょうが、がんばってくだっさい。
お礼
カムさん、こんなに沢山のアドバイスをありがとうございます。 以前も最後まで見捨てないで助けてくれましたね・・。 感謝の言葉もございません。 javaも少しずつ勉強進めている中で、サーブレットも勉強してみようかな??ってところまでこれました。 何のお礼も出来ないですが、お分けいただいた知識を無駄にしないように大切に育てていくつもりです。 あ、長々とごめんなさい。さっそくためさせて頂きます^^; 解らない事がありましたら、またお聞きしたいので締め切りはほんの少しだけお待ちください。ポイントすぐに発行いたします。 本当にありがとうございます^^ ではでは、少しだけお待ちください。
- guineness
- ベストアンサー率36% (14/38)
インポートしただけでは駄目です。 継承してください。 Sample1 をみてください。 public class Sample1 extends HttpServlet って書いてあるはずです。
お礼
わわ、またお返事いただけてありがとうございます。 あ、ごめんなさいです。継承してましたです。 拡張やスレッドとかでextendsは解ってたのに・・本当にごめんなさい。 いろいろサーブレット勉強サイトとかで調べてみてもwed.xmlをどうしろって書いてなくて、何のことなのか解らなくて・・・。 大切なお時間をごめんなさい。 よろしければまたご指導いただけたらうれしいです。 ありがとうございました。
- kamkamkam3
- ベストアンサー率42% (216/514)
もうだいぶ時間がたってしまいましたが、できましたかね? 本当に同じフォルダにあるか確認してください。Sample1とSample10は同じフォルダにありますか? あれば、#1様がおっしゃるようにweb.xmlの問題だと思います。一度、web.xmlとSample10のソースファイルを見せてください。そうすれば、すぐ解決すると思いますよ。
補足
お返事ありがとうございます。 わわ、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)
予測 1: コンパイルはできているが、HttpServletを継承してない。 2: web.xmlの記述の問題
お礼
お返事ありがとうございます。 継承・・・うう、ごめんなさい、インポートするだけではだめなのでしょうか・・。 1.2を調べてみます。 ご指導ありがとうございました^^
お礼
できました^^ 今更ながらですが、サーブレットはHTML、java、XMLと必要なのですね・・、こんなに大変とはです。 まだまだ必要になる知識とかあるとおもいますが、少しずつ進んで行こうと思ってます。 この度も大切なお時間をお分けいただけて、本当にありがとうございます。 このお礼文を最後にお話できなくなるのはさびしいですがポイント発行させていただきますです。 ありがとうございました^^