• ベストアンサー

サーブレット実行時のエラー

サーブレットを実行したときにTomcatでこのようなエラーが出てしまいます。 http://aohina.boy.jp/err.bmp クラスパス&パスはすべて通してあり、http://localhost:8080/には接続できますのでTomcatは動いてると思います。 Tomcatのバージョン:5.5.9 Javaのバージョン:jdk1.5.0_02 ここを参考にサンプルプログラムを作ろうと思ってます。 http://www.hellohiro.com/servlet.htm

  • Java
  • 回答数3
  • ありがとう数0

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

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

こんにちは、invokerの設定では私も四苦八苦した覚えがあります。 未だに勉強中ですので間違った内容かも知れませんが、何かのヒントになれば幸いです。 >ラッパがサーブレットクラス javahello.HelloWorldServlet ・・・を見つけることができません。 上記のメッセージから、servlet-api.jarにパスは通っていて、invokerクラスは呼び出せていますね。 >java.lang.ClassNotFoundException: javahello.HelloWorldServlet このメッセージからは、javahelloパッケージに属しているHelloWorldServletを見つけることができていないことが分かります。 javahelloパッケージに属しているjavahello.HelloWorldServletにアクセスする場合は、 http://localhost:8080/javahello/servlet/javahello.HelloWorldServlet というようにクラス名をパッケージ名を含めた完全修飾子で指定する必要があります。 (ソースの先頭には、package javahello;が記述されていますよね。) 私の理解している範囲で一般的な名称で書き直すと、以下のようになります。 http://localhost:8080/[コンテキストパス]/[サーブレットマッピングで指定したURLパターン]/[パッケージ].[サーブレット] サーブレットがパッケージに属していない場合は、[パッケージ].の部分は不要です。 【補足】 %TOMCAT_HOME%\conf\Catalina\localhost\javahello.xmlは作成してあるでしょうか? もし作成していないのならば、以下の内容を記述して下さい。 <Context path="/javahello" docBase="[%TOMCAT_HOME%のパスを設定]\webapps\javahello" reloadable="true"/> 【補足2】 以前のQAでお勧めしたTomcatハンドブックですが、実は私も購入しておりません(笑) invokerの設定で悩んだ時に立ち読みしまして、内容が良かったのでお勧めしました。 参考URLにはTomcat5.x系でのServletの実行方法がありますので、そちらもどうぞ。

参考URL:
http://www.javaroad.jp/opensource/js_tomcat2.htm
kuninari
質問者

補足

できました!!ありがとうございました;;

その他の回答 (2)

回答No.2

「クラスパス&パスはすべて通してあり」とありますが、 ClassNotFoundException と表示されている以上、TOMCATがサーブレットクラスを認識できていないようですね。 サーブレットクラスが、どこのディレクトリに入っているのか確認してください。WEB-INF/classes/javahelloに置いているのか、それ以外なのかご確認ください。

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.1

現行のTomcatでは、servlet/サーブレットクラス名 でのアクセスができないはずです。これはセキュリティ上の観点からデフォルト設定で無効にされていたような・・・ 上記の設定を解除するか、web.xmlにサーブレットマッピングの設定をしてください。これらについては自分でお調べください。

kuninari
質問者

補足

サーブレットマッピングの設定はしてあるんですが・・・ダメみたいなんです。

関連するQ&A

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

    本を読んで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
  • サーブレットの実行について

    サーブレットの実行について http://www.hellohiro.com/servlet.htm こちらを参考しながら設定してみたのですが、 アクセスしても404エラーでページが表示されません。 Tomcatをインストールし http://localhost:8080 にてindex.jspが表示されることは確認できました。 Tomcat起動後 http://localhost:8080/manager/htmlからアプリケーションjavahelloを設定しました。 そして サーブレットファイル(A.class)を[Tomcatのフォルダ]\javahello\WEB-INF\classesの下にコピーし、 http://localhost:8080/javahello/servlet/A とブラウザにしてすると404エラーになってしまいます。 何か設定が足りていないのでしょうか? どなたか教えてください。よろしくお願いします。 環境 Windows XP Tomcat 5.5

    • ベストアンサー
    • Java
  • サーブレットが実行できない

    似たような質問が何件かあるのですがそちらを読んでも解決できないので、質問させてください。 java servlet初心者なのですが、 http://www.hellohiro.com/servlet.htm のサイトをもとにサーブレット環境を自分のパソコンで作ろうとしています。 とりあえず ・Tomcat5.5.23をダウンロード ・http://localhost:8080でページが表示されることを確認 ・HelloWorldServlet.classを作る。 まで正常にできました。 その後、 [Tomcatのフォルダ]\webapps\examples\WEB-INF\classes にHelloWorldServlet.classをコピーし、 http://localhost:8080/examples/servlet/HelloWorldServlet  を実行したところ 404エラーが発生しました。 もともとwebappsファイル下にexamplesというファイルがなかったのですが、これは正常なのでしょうか? jsp-examplesファイルとservlets-examplesファイルがあったのでその中の \WEB-INF\classes下にHelloWorldServlet.classを入れてみたり、 webapps下に\examples\WEB-INF\classesを作って、その中にそのclassファイルを入れてみたりといろいろやってみたのですが、 まったくエラーは変わりません。 何が悪いのかわからないのですが、 何かアドバイスをいただけないでしょうか? お願いします。

    • ベストアンサー
    • 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
  • サーブレットは動くがJSPだけ動かない

    Servlet/JSPでの開発をTomcatで行っているのですが、webapps/examples/jspの JSPサンプルが起動しませんでした。Internal Servlet Error 500が返されてしまい ます。 開発環境 Windows 2000 Java2 SDK 1.3 Jakarata Tomcat 3.2.1 環境変数 TOMCAT_HOME=C:\jakarta-tomcat-3.2.1 JAVA_HOME=C:\jdk1.3 PATH=%PATH%;C:\jdk1.3\bin CLASSPATH=%CLASSPATH%;C:\jakarta-tomcat-3.2.1\lib\servlet.jar 気になるのは、Oracle8iのトライアル版をインストールして いる点です。Oracleをインストールすると以下のような環境変数が設定されます。 Oracleインストール後の環境変数Path Path=C:\Oracle\Ora81\bin;C:\Program Files\Oracle\jre\1.1.7\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\jdk1.3\bin;C:\Oracle\Ora81\orb\bin 1.1.7のjreがかなり怪しいとは思うのですが。 もう一度、質問をまとめてみます。 ・exampleサーブレットは動くが、example JSPだけが動かないのはどうしてでしょう? ・とにかくJSPだけを動かしたいのですが、方法はあるでしょうか?  (JDBC接続を行うため、Oracleは削除できないという前提で) 皆様の知恵をお貸しください。

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

    WIN2000 j2sdk1.4.1_06 Tomcat 4.1.24です。 よろしくお願いします。 困っているのは、はサーブレットが動かないということです。 コンパイルすると C:\j2sdk1.4.1_06\bin>javac Hello.java パッケージ javax.servlet は存在しません。 import javax.servlet.*; というエラーになります。 j2sdkとトムキャットをインストールし、 PATH等の設定も行い Tomcatの起動も行なってからやっているのですが、 JSPはちゃんと表示してくれるのですが、 サーブレットだけ動きません。 APIを見ると確かに標準のものには載っておらず サーブレットの方に載っているようなのですが、 何か他に設定もしくは、インストールする必要が あるのでしょうか?

    • ベストアンサー
    • 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
  • サーブレット環境について

    トムキャットに関する質問のお答えが少なかったので、もしかしてこれって難しいのでは・・と、思っていたのですが、どうしてもわからず、質問させていただきます。 インストールして、スタート→全てのプログラム→Apache Tomcat5.5→MonitorTomcat、そして下のアイコンからStart serviceを選んでアイコンのマークが緑色に変化して、それからURLでhttp://localhost:8080と入力したのですが、見つかりませんって出ちゃいます。アイコンマークが緑色に変化ってところまでは本の指示通りなので間違ってないと思うのですがこれって・・。現在JDKは使ってます。クラスパスも設定しました。 パスはしてません。(指示無かったので) ホスト名が間違っているのでしょうか? このアイコンが緑に変化ってところまではあっているのですが、ここまでってクラスパス設定にミスがあっても これちゃうものなのでしょうか? もしかしてクラスパス設定がまちがっているからつながらないのでしょうか? OSはXPでURLはFireFoxからしてます。これだけでは情報が足りないのでしたら補足させていただきます。 高レベルの凄い方、また経験豊かな方のご指導いただけたらうれしいです。よろしくお願いいたします。 あと必要かどうかわからないですが、 C:\ProgramFiles\Java\jre1.5.0\lib\ext\QTJava.zip;(2)C:\Program Files\ApacheSoftwareFoundation\Tomcat5.5\common\lib\servlet-api.jar;. (2)までがすでに設定してあったパスで(2)からトムキャットのために新しく設定したクラスパスです。

    • ベストアンサー
    • Java
  • サーブレット実行について

    コンパイルしてクラスファイルをつくって、トムキャット起動して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もコンパイルされてクラスができたってことはソースに間違いなかったのでは??と、思うのです。 この違いに何かご存知の事がありましたらお教えいただけたらうれしいです。 過去この様なことを経験なさってる方のアドバイスもお待ちいたしております。 どうか宜しくお願いいたします。 情報が足りないようでしたら補足させていただきます。

    • ベストアンサー
    • Java
  • EclipseでのJavaサーブレット開発で、プロジェクトに対するビルドパスの設定について

    Javaプログラミング初心者です。 MacOS 10.5環境で、Eclipse3.5, Tomcat5.5を使ってJavaのWebアプリ開発環境を作りたいと思っています。 サーブレットを作るので ・javax.servlet.* ・javax.servlet.http.* のパッケージをimportするために、Tomcatのcommon/lib/servlet-api.jarをクラスパスに指定する必要があると思うのですが、 Eclipseで新規サーブレットを作った際に、自動的にこのクラスパス指定を行う方法はありますか? 今のところ、サーブレット作成の度に、そのプロジェクトフォルダに対してビルドパスを設定している状況です。 教えて頂けないでしょうか、よろしくお願いいたします。 (ところで、この質問をする際、投稿カテゴリーで「プログラミング」を指定しているにも関わらず、なぜか反映されないので、「その他」カテゴリで質問させて頂きます。)