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

このQ&Aのポイント
  • 「はじめてのJSP&サーブレットプログラミング」という本で勉強しています。Eclipseで「動的WEBプロジェクト」でプロジェクトを作ると、データソースの設定に必要なコンテキスト記述子のXMLファイルが出来ないようです。
  • Tomcatプロジェクトでプロジェクトを作るとコンテキスト記述子のXMLファイルが出来ますが、動的WEBプロジェクトで作る場合は出来ません。
  • したがって、Tomcatプロジェクトでサーブレットでデータベースに接続する作業を行う場合には、Tomcatプロジェクトで作成する必要があります。しかし、動的WEBプロジェクトではJSPやサーブレットの作成が簡単にできるため、どちらで作成するか迷っているようです。
回答を見る
  • ベストアンサー

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

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

  • rapun
  • お礼率65% (196/300)
  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#49664
noname#49664
回答No.1

お使いのEclipseは、Web Tools Platformのことですね(WTP)。ただEclipseと書かれると勘違いしてしまう人も多いと思うので・・・。 その本は、少し古いもののようですね。Tomcatプラグインというのは、まだWTPが出る前に、サーバサイド開発の環境が標準で用意されていなかった頃に多用されていたプラグインです。今でも使えますが、WTPを使えばはるかに強力な環境が手に入りますから、今ではあまりTomcatプラグインを使うメリットはないように思えます。 Tomcatのコンテキスト記述子というと、sever.xml(AppName.xml)のことでしょうか。Tomcatプラグインの場合、server.xmlを書き換えないとサーバにプロジェクトを公開できなかったので、自動的に作成をしていたわけです。が、WTPでは、そんなことをしなくてもそのままプロジェクトを公開できるので、server.xmlが作成されなくなっています。要するに、「Tomcatプラグインはそういうものをいちいち作らないといけなかったけど、WTPは作らなくてもいいようになった」つまり、より進化したからなくなった、と考えるといいと思います。 コンテキスト記述子に必要な情報を記述するというのは、ファイルが自動作成されるかどうかとはまったく別の話でしょう。自動で作成されないなら、手作業でファイルを作成し、編集すればいいだけのことです。META-INF内に新規XMLファイルとしてcontext.xmlというファイルを作成し、そこに記述すればOKだったと思います。

rapun
質問者

お礼

詳しい回答ありがとうございます。 >「Tomcatプラグインはそういうものをいちいち作らないといけなかったけど、WTPは作らなくてもいいようになった」つまり、より進化したからなくなった なるほど・・・。そうだったんですか・・・。 >自動で作成されないなら、手作業でファイルを作成し、編集すればいいだけのことです。META-INF内に新規XMLファイルとしてcontext.xmlというファイルを作成し、そこに記述すればOKだったと思います。 さっそくやってみようと思います。

関連するQ&A

  • Tomcat4.1.31でのserver.xmlの<Context>の追加について

    環境:OS:win2k Tomcat4.1.31+j2sdk1.4.2_05 eclipse3.0.1 E:\eclipse_project\MyProject以下で作業しています。 参考書籍:JavaWebプログラミング徹底入門(技術評論社) 環境変数などの設定もすませ、http://localhost:8080/index.jspも見れて、http://localhost:8080/examples/servlet/HelloWorldExampleなどのサーブレット・jspのサンプルなども全て正常に動きます。 server.xmlの<!-- Tomcat Root Context -->のすぐ下の行に <Context path="/rucho" reloadable="true" docBase="E:/eclipse_project/MyProject" debug="0" crossContext="true"/> と追加して再起動して、サンプルのクラスをコピーしても、 正常に表示されません。http404エラーが出ます。 他のサーブレットクラスや、本のサンプルをコピーしても同様です。 また、NO,1091223の件を参考にマネージャーから パス: /rucho ディレクトリのURL:file:E:/eclipse_project/MyProject としてもだめでした。 tomcat自体を入れ直してみたりもしましたが、だめでした。 E:/eclipse_project/MyProject/jspにindex.jspを置くと問題なく表示されます。 さらに、本に付録として付いていたTomcat4.0.6を入れて、 server.xmlに全く同じContextタグを追加したら、 今度は何の問題もなく意図通りの設定が反映されて動作しました。 一体何が悪いのか、どなたご教授願えないでしょうか?

    • ベストアンサー
    • Java
  • eclipseのWTPでコンテキストルートはどうやって設定するのか

    ABC¥web \WEB-INF         \abc.jsp のように配置し、サーバーで起動を選らぶと、「コンテキストルートを更新」と出てくるのでチェックボックスに入れると、localhost:8080/ABC/abc.jsp でjspが表示できます。 しかし、WEB-INFのなかにサーブレットを配置して、そこから<a href>タグでlocalhost:8080/ABC/abc.jspを呼ぼうとするとたちまち接続できなくなりました。 ステータスは404(つまり見つからない) The requested resource (/ABC/abc.jsp) is not available. と成ってしまいます。 何らかの原因でコンテキストルートがうまく認識できていない??のかと思うのですが良くわかりません。 eclipseはall-in-oneを使い、Tomcatは5.0を使っています。 最悪Tomcatのマネージャからwarを配備する方法でも良いので教えてください。

    • ベストアンサー
    • 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
  • Eclipseで書いても、Tomcatで動かない。

    「All-In-One-Eclipse」で、サーバーサイドのプログラムを作ろうとしています。 Tomcatをインストールして、TomcatのプラグインもEclipseの指定のディレクトリに置いて、EclipseのTomcatの設定もしたはずなのですが、Tomcatと連携がとれてないようです…。 Eclipseで「動的Webプロジェクト」を選択して、作成したプロジェクトの左のビュー(?)の「WebContent」を右クリック→新規→JSPで、JSPのファイルを作り、簡単なコードを書いたのですが、ブラウザで 「http://localhost:8080/プロジェクト名/JSPファイル名 と書いても、ファイルが見つからないとエラーが出てしまいます。 何か、落としている作業等あるのでしょうか? また、原因などに、見当がつきましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcat6.0のContext要素について

    Tomcat6.0のContext要素についてなのですが、今までEclipseで自動的にTomcat/conf/sever.xmlに記述してくれたので気にしてなかったのですが、 http://www.oki.com/jp/oss/document/tomcat/tomcat-6.0.14/build/tomcat-docs/config/context.html を見たのですが、server.xmlに記述する事はよくないと書いてありました。 それと、今までのバージョンのTomcatと違って記述する内容も違うみたいなのですが、debug="0"とかtrusted="false"とか書くと、警告が表示されます。 Eclipseを使わずにTomcatを使用するには、どういう風にContext要素を書けばいいのでしょうか。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Java
  • 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
  • eclipseで「サーバーで実行」表示が出る

    プロジェクト作成のとき (1)「tomcatプロジェクト」から作成する (2)サーブレットも「クラスを作成」から作成していく (3)JSPも「ファイル」から作成していく というやり方をして作ると「実行」を押しても Javaアプリケーションで実行というものしかでてきません 解説本をみると内容が古いのであらゆるものが現在のeclipseとことなってて 動かし方がわからずこんなことをしています

  • contextタグ内のsourceタグについて(WTP使用)

    WTPを用いてWEBアプリケーションの作成を行っています。 Webプロジェクトを生成すると、eclipseワークスペースのserver.xmlに下記のように記述されていました。 (プロジェクト名'A'で作成) <Context docBase="C:\eclipse\workspace\A\.deployables\A" path="/A" reloadable="true" source="com.ibm.wtp.web.server:A"/> この中に記述されているsource="com.ibm.wtp.web.server:A" は何を意味するのでしょうか? また、server.xmlではなく、プロジェクト名.xmlファイルのように管理できないでしょうか?(WTPの機能で)

  • 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で別プロジェクトをTomcatで使用

    EclipseにTomcatプラグインを入れて Tomcatプロジェクトでサーブレットを作ってます。 そしてこのTomcatプロジェクトから別のライブラリプロジェクトを読み込んでいます。 EclipseのJavaのビルドパスにこのライブラリプロジェクトを指定しているので Eclipseから実行した場合はきちんとこのライブラリプロジェクトを利用して実行できます。 (リアルタイムでライブラリプロジェクトの修正が反映されます) しかしTOMCATでサーブレットを実行した場合にはこのライブラリプロジェクトを読み込んでくれないようで ClassNotFoundExceptionになってしまいます。 ライブラリプロジェクトをJarにしてTomcatのlib以下に置いてやればきちの読み込まれますが できればTomcatプラグインを使って実行した際にライブラリプロジェクトもコンパイルしてTOMCATに読み込ませてライブラリプロジェクトの変更内容もリアルタイムで反映させたいです。 そういう風にするにはどこで設定すればよろしいでしょうか? Eclipse Keplerを使ってます。

    • ベストアンサー
    • Java

専門家に質問してみよう