• ベストアンサー

Eclipseにおけるサーブレット作成時のエラー(TOMCAT)

JAVA初心者です。非常に困っておりどうしてよいのかわかりません。よろしくお願いいたします! eclipseにてサーブレットを作成したのですが、実行ができません。 ---------- 環境 OS:Windows2000Server Eclipse ver2.1.1 TOMCAT ver4.1 プロジェクト名Sample 実行ファイルHelloSrvlet.java ---------- "web.xml"をエクリプスのプロジェクト下のWEB-INFに作成した場合に『HTTP Status 404』エラーが表示されてしまいます。 servlet.xmlにも<context・・・と設定はしております。web.xmlを作成しなかった場合にはadmin上でSampleがありディレクトリ構成も見えるのですが、作成するとディレクトリ構成も見えなくなります。何が悪いのかすらわからない状況です。 どなたか教えて下さい!

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

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

  • ベストアンサー
  • takaP-
  • ベストアンサー率79% (83/105)
回答No.2

><servlet-mapping> ><servlet-name>hello</servlet-name> ><servlet-class>/hello</servlet-class> ></servlet-mapping> <servlet-mappig> で入れ子に出来るのは ・<servlet-name> ・<url-pattern> です。web.xml に関しては下記のサイトが参考になると思います。

参考URL:
http://www.sk-jp.com/java/servlet/webxml.html
98AA89
質問者

お礼

ありがとうございました。 ただ記述ミスでした。 しかし、jspやhtmlからのサーブレット呼び出しは可能になりましたが、サーブレット本体を呼び出しを行うと『out.println("")』にて出力されたhtmlファイルのダウンロードのメッセージが出てしまうような状況に陥ってしまいました。 多分、Tomcatがサーブレットを認識してないと思うのですが・・・。 これも何かおわかりでしたら、教えて下さい! お願いします。

その他の回答 (2)

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.3

ダウンロードされるのであれば サーブレットとして認識されてるとおもいます。 ヘッダにtext/htmlを設定してやれば 表示されると思います。 ----- タイトルと違う質問をするときは 別スレッドを立ててください。 似たような事例を探している方が探しやすいですので。

98AA89
質問者

お礼

ご回答とご指示ありがとうございました。 さっそく正常に表示できるようになりました。

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

Tomcatのログやコンソールにはなにかでていませんか? web.xmlの設定が悪いとサーブレットがうまく機能しません。

98AA89
質問者

お礼

Taka-pさんに回答を頂き、だいたい解決しました。 chi-konさんも回答ありがとうございました。

98AA89
質問者

補足

いろいろ試してみましたが、一向に機能してくれません。 Tomcatの起動時のログには、 ------------------------------------------------- Caused by: java.lang.IllegalArgumentException: サーブレットマッピング中に無効な <url-pattern> null があります at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:1690) ... 39 more ------------------------------------------------- とエラー表示されています。 web.xmlの設定が悪いと思うのですが、参考書をお手本にして作成したので、どうしたらよいかわかりません。 Tomcatは正常に動いています。 ちなみに、web.xmlの内容は、、、 ------------------------------------------------- <?mxl 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>hello</servlet-name> <servlet-class>hoge.HelloSrvlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <servlet-class>/hello</servlet-class> </servlet-mapping> </web-app> ------------------------------------------------- と記述しました。 またTomcatのconf内のweb.xmlの ------------------------------------------------- <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> ------------------------------------------------- コメントアウトを削除しています。 どこか設定が悪いのでしょうか?

関連するQ&A

  • tomcat サーブレットエラー

    表題の件、原因がつかめず困っています。 何かアドバイスある方いらっしゃれば是非お願いいたします。 環境 Linux/FedoraCore5 tomcat6.0.10/Webポート8080 apacheは使っていません /usr/local/bin/tomcat/conf/Catalina/localhost/fs.xmlの設定 <Context path="/fs" reloadable="true" docBase="/usr/local/sample/d emo/data" crossContext="false" cookies="false" /> /usr/local/sample/demo/data/WEB-INF/web.xmlの設定で、 あるサーブレットクラスを呼び出すようにしています。 そのクラス内で、net.sample.sql.ConnectionManagerという クラスを呼び出しているのですが、実行時に以下のエラーが出ます。 java.lang.NoClassDefFoundError: Could not initialize class net.sample.sql.ConnectionManager net.sample.sql.ConnectionManagerはsample.jarに含まれており、 /usr/local/sample/demo/data/WEB-INF/lib/に配置しています。 (呼出元のクラスもこのディレクトリにあります。) 原因となりえる場所として、考えられることは何かありますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • 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
  • Eclipse+TomcatのHTML表示について

    Eclipse+TomcatのHTML表示について EclipseにTomcatプラグインを追加して、下記動作を行ったところ404エラーが出てしまいます。 WEB-INF以下に置いたHTMLファイルを正常に表示するためには、どのような設定が必要なのでしょうか? 環境:eclipse3.4/Tomcat6 1.プロジェクトの作成 新規プロジェクト>Tomcatプロジェクト プロジェクト名:Example コンテキスト名:/Example Webアプリケーション・ルートとするサブディレクトリ:/ コンテキスト定義の更新を可能にする(server.xml またはコンテキスト・ファイル):チェック 2.コンテキストの更新 プロジェクト右クリック>Tomcatプロジェクト>コンテキスト定義を更新 3.Tomcat起動 Tomcatプラグインからポート8080でTomcatを起動。 4.HTMLを配置してアクセス(1) 配置:/Example/WEB-INF/index.html アクセス:http://localhost:8080/Example/index.html 結果:404エラー 4.HTMLを配置してアクセス(2) 配置:/Example/WEB-INF/index.html アクセス:http://localhost:8080/Example/WEB-INF/index.html 結果:404エラー 5.HTMLを配置してアクセス(3) 配置:/Example/index.html アクセス:http://localhost:8080/Example/index.html 結果:正常表示

    • ベストアンサー
    • Java
  • Eclipseでプロジェクトを作るとコンテキスト記述子が出来ない?

    「はじめてのJSP&サーブレットプログラミング」という本で勉強しています。 その本では「データベースへの接続で、データソースを使ってデータベースに接続するようにするために、データソースの設定にコンテキスト記述子への記述が必要です。Tomcatの場合は~ディレクトリ以下にあります。」とあるのですが、Eclipseで「動的WEBプロジェクト」でプロジェクトを作ると、そこのフォルダにそのXMLファイルが出来ません。 ためしに「Tomcatプロジェクト」でプロジェクトを作ってみるとプロジェクトを作ったらすぐ出来ました。 これはEclipseでこういうサーブレットでデータベースに接続するような作業は「Tomcatプロジェクト」で作るように、ということなのでしょうか?しかし、「動的WEBプロジェクト」で作ったプロジェクトでは新規で何かファイルを作る時に候補に自動的にJSPやサーブレットといったものが挙がるのでやはりサーブレットは「動的WEBプロジェクト」で作るのでは? と分からないでいます。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Linux上でEclipseを使用するには

    Linux上でEclipseを使用するには 開発環境のライセンスの都合により、 あるマシン上でしか実行できないサーブレットをもつWEBアプリを開発しています。 WEBアプリはCUIモードのLinux上で動いていますが、現状複数の開発者が、端末よりサーバーに接続しサーバー上のJSPファイルを直接修正している状況です。 できればこの環境を以下のように変えたいのです。 ・LinuxはGUIモード ・LinuxにEclipseをインストール ・各端末(Windows)からLinuxにGUIモードで接続(必要なエミュレータは?) LinuxサーバーのWEBアプリケーションのディレクトリ構成は、WEB-INFの下にweb.xmlが存在しませんし(WEBアプリのディレクトリ構成を守らなくてもWEBアプリって動くの?)、Eclipseのダイナミックウェブプロジェクトのディレクトリ構成にリンクを張ったりしてごまかすのも大変そうですが、 まずは、上記の環境にするための方法がありましたら、 アイデアを教えていただきたいです。 どうぞよろしくお願いいたします。

  • サーブレットのクラスパス追加について

    Tomcatを用いたWebアプリケーション作成についてご質問させてください。 Webアプリケーション実行時に読み込まれるクラスパスを任意に追加することは可能でしょうか。標準では{CONTEXT_ROOT}/WEB-INF/classesと{CONTEXT_ROOT}/WEB-INF/libにあるクラスがサーブレット上で実行されるクラスとして読み込まれますよね。これ以外に任意のディレクトリをクラスパスとして追加し、そのディレクトリにあるクラスをサーブレット上で実行したいのですが、可能でしょうか。 環境変数にクラスパスを設定してみたり、{TOMCAT_HOME}/bin/setclaspass.shにクラスパスを追加してみたりもしたのですが、結果は両方ともNoClassFoundExceptionでした。 ご教示お願いいたします。

    • ベストアンサー
    • Java
  • TomcatとEclipseのweb.xml[]について

    TomcatとEclipseのweb.xmlの<context-param>の設定について お聞きいたします。 windowsXP上にTomcatとEclipseをインストールし ${CATALINA.HOME}\confの直下にあるweb.xmlと Eclipseで作成したWEB-INF直下のweb.xmlの 両者に <context-param> <param-name>hoge</param-name> <param-value>foo</param-value> </context-param> と記述があり jspから application.getInitParameter("hoge"); またはHttpServletの子クラスから getServletContext().getInitParameter("hoge"); と呼びに言った場合どちらの設定が優先され また、その優先順位の記述(設定)はどこで 行うのでしょうか? ちなみにlogging.propertiesなどの設定も どちらが優先されるのか気になります。 尚、環境は Tomcat5.5 Eclipse3.2 です。 どうかご教授お願い致します。

    • ベストアンサー
    • Java
  • TOMCATサーブレットの呼び出し方について

    こんにちわ!yukimura1024です。 tomcat5.0.27でサーブレットをやっているのですが、 web.xmlでurl-patternを定義したのもはブラウザでアドレスを入力しても サーブレット内からrequest.getRequestDispatcherで呼び出しても見つかるのですが、 それ以外の、web.xmlでurl-patternを定義していないサーブレットは 同じディレクトリにおいてあるサーブレットでもまったく呼び出せません(TT サーブレットの数だけweb.xmlにurl-patternを定義しなくてはならないのでしょうか? 昔は特に設定しなくても呼び出せていた気がします。。。 この辺についてわかる方、教えていただけると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • Tomcat で Java サーブレットを動かす方法

    こんにちわ Tomcat 3.3.1 でサーブレットを動作させる実験をしています。 現在サンプルプログラムが、http://[host_name]:8080/examples/ で動作しています。 ※ウェブサーバーは使用していません。 ここで質問です。 自分で任意のフォルダを作成し、その中にクラスファイルを格納して実行する場合の設定方法が分かりません。 examples フォルダ以下を見ると、 Web-inf servlets Meta-inf 等のフォルダが有ります。 サーブレットを実行する際に、この構成は必須なのでしょうか? この辺の設定方法が解説されているサイトまたは、書籍など有りましたら情報をください。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • Eclipse3.4

    Eclipse3.4を使用してWebアプリ(JSP/サーブレット)を開発する事になりました。 開発に先立ってサンプルを作成したのですが、そのサンプルのプロジェクトのファイル一式を違う端末にコピーしてEclipseにて開くとプロジェクトエクスプローラに何も表示されません。つまり、他の端末ではサンプルが実行できない状態です。 このような現象の対応方法をご存知の方がいらっしゃいましたら教えて頂けると助かります。 <参考>  (1)サンプルを作成した端末のOSはxpです。  (2)サンプルをコピーしてきた端末はvistaです。  (3)両端末ともEclipse3.4です。  (4)サンプルを作成した端末では、正常に動作します。 以上ですが、よろしくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう