• ベストアンサー

Javaサーブレットを読み込んでくれません…

現在、社内での新プロジェクトの為にJSPの研修を行っています。 開発環境 ・Windows2000 Service Pack 4 ・JDK 1.5.0_06 ・Tomcat 5.5.20 JDKとTomcatのインストールは正常に終了し、http://localhost:8080/は正常に見ることが出来ました。 その後、<Tomcat-Home>/webapps/ROOT/entryフォルダを作成し、 ・entry/WEB-INF/ ・entry/WEB-INF/classes/ 以上二つのフォルダを作成して、WEB-INFフォルダ直下にweb.xmlファイルを作成しています。 classesフォルダの中にHelloServlet.classを置き、web.xmlファイルの中身を書き換えてTomcatを再起動させてみたのですが、http://localhost:8080/entry/HelloServletとURLを打ってみても見ることが出来ません。 何か間違っているのか、設定不足なのか…教えていただければ幸いです、よろしくお願いいたします。 ************<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> *********************************

  • Java
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • kscKane
  • ベストアンサー率62% (18/29)
回答No.3

<Tomcat-Home>/webapps/ROOT/ のフォルダの中身は、Webアプリケーションの一つです。 何のWebアプリケーションかというと、http://localhost:8080/​で表示されるWebアプリケーションです。 つまり、<Tomcat-Home>/webapps/ROOT/ フォルダ以下はすでにトップページ用のアプリケーションが使用しているため、そこの他の物を置いても認識できません。 また、設定をいじらない限り、Tomcatは<Tomcat-Home>/webapps/以下のフォルダ単位でWebアプリケーションを認識します。 <Tomcat-Home>/webapps/ROOT/entry以下にファイルを置いて、context.xmlを設定すればアプリケーションとしてアクセスできるかもしれませんが、実行したことが無いので本当にできるかどうか分かりませんし、管理運用の面から考えてもあまりお勧めできる物ではないと思います。

reona0901
質問者

お礼

ご回答、本当にありがとうございます。 おっしゃる通り、ROOTフォルダの中に置いていたのが悪かったようです。 webappsフォルダ直下に移動させましたところ、正常に読み込んでくれるようになりました。 本当に、どうもありがとうございます。

その他の回答 (3)

  • kscKane
  • ベストアンサー率62% (18/29)
回答No.4

#3 ​http://localhost:8080/​ の末尾"​"は取り除いてください^^;

  • yuchi-co
  • ベストアンサー率60% (29/48)
回答No.2

<Tomcat-Home>/webapps/ROOT/entry ↓ <Tomcat-Home>/webapps/entry と変更すれば実行できると思います。 ROOTの中にentryを入れてしまうと、entryがひとつのアプリではなく、ディレクトリとなってしまうんだと思います。

reona0901
質問者

お礼

ご回答、どうもありがとうございました! おっしゃるとおりにフォルダを移動したところ、正常に動くようになりました。 本当に、どうもありがとうございます。

  • kscKane
  • ベストアンサー率62% (18/29)
回答No.1

<Tomcat-Home>/webapps/entry なパスにファイルを置いたらどうなりますか?

reona0901
質問者

お礼

ご回答ありがとうございます。 entryフォルダの直下にsample.html、sample.txtなど置いて、それぞれを http://localhost:8080/entry/sample.html http://localhost:8080/entry/sample.txt で表示させてみたところ、こちらは問題なく表示されました。 本やサイト等で調べてみて、心当たりのあるものについては一通り試してみたのですが… ご教授いただけましたら幸いです、よろしくお願いいたします。

関連するQ&A

  • サーブレットにて、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
  • Tomcatでサーブレットを動かそうとするとHTTP 404エラーにな

    Tomcatでサーブレットを動かそうとするとHTTP 404エラーになってしまいます。 使用環境は以下の通りです。 Tomcat 5.5.20 jdk 1.6.0_20 Eclipse pleiades-e3.5 Tomcatプロジェクト名entryを作成し、WEBINF-src以下に inputパッケージを、その中にHelloServlet.javaを作り、 web-xmlをentryの直下に作成しました。 取り敢えず動作確認をしたいのですが、404エラーになってしまいます。 Tomcatを再起動しても駄目でした。 どなたか助言を頂けると大変助かります。。 以下確認した事です。 ・http://localhost:8080/manager/htmlにて/entryのデプロイを確認済み。 ・textファイルを配置した時はhttp://localhost:8080/entry/hello.txt で動作確認済み。 ・web-xmlは動作確認がとれているものをコピペして必要な部分だけ書き直し、       何度か確認したのですが、記述中の←の所でスペルが正しくありませんと言われています。 <?xml ← version="1.0" encoding="Shift-JIS"?> <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-appp_2_4.xsd" version="2.4"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>input.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> </web-app> 情報が少なくて申し訳ないですが、よろしくお願いします。

    • ベストアンサー
    • 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
  • サーブレットのマッピングについて

    サーブレットのマッピングについて教えてください。 現在サーブレットを学習しています。 書籍に付属するサンプルをとりあえず動かしている段階なのですが、マッピングがうまくいきません。 http://localhost:8080/エントリポイント/servlet/MyServlet とアドレス入力した場合はきちんと表示されるのですが、WEB-INF直下にweb.xmlファイルを作成して http://localhost:8080/エントリポイント/servlet/ms にアクセスすると404エラーが返ってきます。 これは何が原因なのでしょうか? 知識不足もあって皆目検討がつかないため、皆様のお力をお借りしたく思います。 よろしくお願いいたします。 なお、サーブレットはWEB-INF直下のclassesというディレクトリ内にコンパイルしておいてあります。 また、web.xmlの内容は以下のとおりです。 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <!-- MyServlet→msと定義する --> <web-app> <servlet> <servlet-name>ms</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ms</servlet-name> <url-pattern>/classes</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • 作成したサーブレットが表示されません(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におけるサーブレットの呼び出し

    tomcatに関してですが、現在サーブレットからjspを呼び出すようなことをしたいと思い、web.xmlを以下のように設定し、”http:localhost:8080/servlet/Login”としても『HTTP Status 404 - 』が返却されます。jspからサーブレットを呼び出すことはできるのですが・・・(この場合、jspファイルをWEB-INFの直下にディレクトリを作成するとやはりアクセスができませんでした。WEB-INFと同レベルに置けばアクセスは可能でした。)。 どなたかわかる方がいれば教えて下さい! よろしくお願いします。 --------------- 環境 --------------- Windows2000Server eclipse ver2.1.1 tomcat ver4.1 --------------- ディレクトリ構成 --------------- WEB-INF Lclasses | LLogin_serv.java Ljsp LLogin.jsp --------------- web.xml --------------- <?xml version="1.0" encoding="shift_jis"?> <!DOCTYPE web-app PUBLIC "-//SUN Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>Login</servlet-name> <servlet-class>serv.Login_serv</servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet> <url-pattern>Login</url-pattern> </servlet-mapping> </web-app> 補足:tomcat-confにあるweb.xmlの『invoker』はコメントを外し有効にしてます。

    • ベストアンサー
    • Java
  • 新しいWebアプリをTomcat4.0に追加するには?

    servletを使った掲示板の製作を行っています。 実際のWebアプリは開発中のため 試しに簡単なアプリを仮に登録しようと思い Webアプリを配置したもののローカルでもうまく起動してくれません。 フォルダ構成も  %CATALINA_HOME%\webapps   |----SampleAdressApp\      |----WEB-INF\           |----classes\               |----*******1.class               |----*******2.class           |----web.xml      |----index.html   |----examples\ といった配置で配置しています。 web.xmlには Tomcatの既存(サンプル)のweb.xmlをコピーし 以下を追加しました。 <servlet> <servlet-name> *********1 </servlet-name> <servlet-class> SampleAdressApp.*********1 </servlet-class> </servlet> <servlet-mapping> <servlet-name> *********1 </servlet-name> <url-pattern> /SampleAdressApp1 </url-pattern> </servlet-mapping> それで http://localhost:8080/SampleAdressApp/index.html で接続しにいくと、以下のメッセージが表示されてエラーになります。  Apache Tomcat/4.0.4 - HTTP Status 404 - /SampleAdressApp/index.html  type Status report  message /SampleAdressApp/index.html  description The requested resource (/SampleAdressApp/index.html) is not available. 解決するにはどうすればよいのでしょうか? 直接、server.xmlに追加する方法もとってみましたが、 無理でした・・・ 教えてください m(__)m よろしくお願いします、

  • JSPからクラス(サーブレット)を呼び出す方法

    JSPからクラス(サーブレット)を呼び出そうとしてるんですが 以下のエラーになってしまいます。 The requested resource (/Hello) is not available. ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので 色々パスを弄ってみましたが、ずっとavailableになります。 わかる方いらっしゃったらアドバイスよろしくお願いします。 ※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。 ※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動きました。 【フォルダ構成 (Tomcat 6.0\webappsの直下) 】 javaroad ---------- index.jsp ---------- WEB-INF -------------------- web.xml -------------------- classes ---------------------------- HelloServlet.class 【index.jsp】 <%@ page contentType="text/html;charset=Shift_JIS" %> <jsp:useBean id="GSBean" class="Testaaa.GetSetBean" /> <html> <head> <title>Hello World!</title> </head> <body> <form method="post" action="/Hello"> <input type="text" name="name1" maxlength="10" style="ime-mode: disabled"> <jsp:setProperty name="GSBean" property="userID" param="name1" /> <br><br> <input type="submit" value="submit"> </form> </body> </html> 【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"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> 【HelloServlet.class】 import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<BODY>"); out.println(new java.util.Date()); out.println("</BODY>"); out.println("</HTML>"); } 以下試して駄目だったパスの一覧です。 <form method="post" action="Hello"> <form method="post" action="/Hello"> <form method="post" action="../servlet/Hello"> <form method="post" action="HelloServlet"> <form method="post" action="/HelloServlet"> <form method="post" action="../servlet/HelloServlet"> <form method="post" action="WEB-INF\classes/HelloServlet"> <form method="post" action="http://localhost:8080/javaroad/Hello">

    • ベストアンサー
    • Java
  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ・ファイルの配置 basic |-input |...|-echo.jsp |-WEB-INF |...|-src |......|-input |.........|-EchoServlet.java |...|-classes |......|-input |.........|-EchoServlet.class |...|-web.xml ・echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="../servlet/input.EchoServlet"> ・web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> tomcatの/confのinvokerのコメントは外していません。 過去の質問も調べてみて、上記の記述の辺りがおかしいのではないかと 思うのですが、、お気付きの点がありましたら教えて頂けないでしょうか。

    • ベストアンサー
    • Java
  • サーブレットでコンパイルがうまくいきません。

    質問させて下さい。サーブレットでコンパイルがうまくいきません。 どうか教えて下さい。 エラーはこのとおりです。ディレクトリはC:\Program Files\Tomcat5\webapps\entry\WEB-INF 実行しました。 c:\>set classpath CLASSPATH=C:\Program Files\Tomcat5\common\lib\servlet-api.jar c:\>cd C:\Program Files\Tomcat5\webapps\entry\WEB-INF C:\Program Files\Tomcat5\webapps\entry\WEB-INF>javac src/HelloServlet.java -d classes エラー: src/HelloServlet.java を読み込めません。 エラー 1 個

専門家に質問してみよう