EclipseとTomcatの配置問題について

このQ&Aのポイント
  • JavaとTomcatを組み合わせた開発環境で、EclipseとTomcatの配置に関する問題が発生しています。
  • 動的Webプロジェクトでプロジェクトを作成すると、Javaソースの場所やクラスの出力場所が正しく設定されないため、Tomcatの機能が正常に動作しません。
  • Eclipseのバージョンや開発者の選択する解決策によって、この配置の問題は解決されています。
回答を見る
  • ベストアンサー

fedora10+eclipse3.42+tomcat6にて

動的Webプロジェクトでstrutsしているのですが 動的Webプロジェクトでプロジェクト(ProjectX)を作ると Javaソース場所がProjectX/srcとなり クラス出力場所がProjectX/build/classesとなります。 ところがeclipseからTomcat6を起動した場合 クラス出力場所がProjectX/WebContent/WEB-INF/classesでなければ JavaClassにアクセスできずTomcat6が機能しません。 またProjectXに設定したクラスパスは Javaファイルのコンパイルには有効なものの ProjectX/WebContent/WEB-INF/classes以下のJavaクラスの実行時には無効なので ProjectX/WebContent/WEB-INF/lib にJarファイルを配置しなくてはなりません。 eclipse3.42のEclipise IDE for Java EE Developers を使ってTomcat6の開発をしている人は どのようにこの配置の問題を解決しているのでしょうか?

  • reiman
  • お礼率73% (794/1076)
  • Java
  • 回答数1
  • ありがとう数0

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

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

Eclipse上でTomcatを起動し実行する場合は、ソースがsrc内にあっても認識する(そのようにTomcatの設定が変更された状態で起動する)ので通常は問題なく動くはず。もしそうならないとしたら、サーバーに生成されているTomcat関係の設定ファイルがおかしいのかも知れない。 もし正しい状態で、ということなら、プロジェクトの設定で、ソースのビルド先をWEB-INF/classesに変更すれば問題ないはず。 また完成したらWarファイルにエクスポートしデプロイする。Warに出力すると、すべてのファイルは通常の配置として書き出されるようになっている。

reiman
質問者

補足

ありがとうございます。 実はコンパイルの生成物の出力先は ProjectX/classpath: <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_13"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="output" path="build/classes"/> </classpath> を <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_13"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="output" path="WebContent/WEB-INF/classes"/> </classpath> に変更してProjectX/buileフォルダを削除すれば解決することは試行錯誤によって分かっていました。 (Javaプロジェクトのように動的Webプロジェクトも出力先を設定出きるようになっていればよかったのになぜなっていないのだろう) ところが Add External JarsでStruts関連Jarを追加すればコンパイルはできますが Eclispeのサーバ画面からの起動では実行時エラーが発生します。 ProjectX/WebContent/WEB-INF/lib に物理的にStruts関連Jarファイルを入れれば Add External JarsでStruts関連Jarを追加しなくても コンパイルもでき実行時エラーもでません。 logger_manさんは ProjectX/WebContent/WEB-INF/lib にStruts関連Jarを入れなくてもEclipseからのTomcatサーバ起動で 実行時エラーは発生していないのでしょうか? ProjectX/WebContent/WEB-INF/lib は本当に空っぽになっていますか? なお、Tomcat6をeclipseとは関係なく動かしている場合にはまったく問題なく warファイル云々の話は必要ありません。 よろしくお願いします。

関連するQ&A

  • Tomcatプロジェクトと動的Webプロジェクト

    EclipseにてWebアプリを作成しようとしているのですが 下記サイトで「J2EE仕様で定められているプログラム配置構成」 http://www.javaroad.jp/opensource/js_tomcat2.htm ということでフォルダ構成が掲載されています。 EclipseにてTomcatプロジェクトを作成するとルートディレクトリの 配下にWEB-INFその下にclassesフォルダ や libフォルダ ができると いった具合になります。 しかし、動的Webプロジェクトではルートディレクトリの配下にWebContent その下にWEB-INFlibフォルダ が存在しclassesフォルダは別の場所に存在しています。 動的WebプロジェクトはJ2EE仕様に従っていないということでしょうか。 また、そうであるならば仕様に従っていないことによる不利益があったりするのでしょうか。 Tomcatプロジェクトと動的Webプロジェクトならば動的Webプロジェクトで開発したほうがよい というWebの記述も見かけたりしたのですがどちらのプロジェクトで開発を行うのが よいのでしょうか。

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

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

    • ベストアンサー
    • Java
  • Eclipse-Tomcat環境のWEB-INF/classes

    EclipseでTomcatプラグイン(sysdeoのtomcatPluginV31)を使用してJSPのページを作成しています。 たとえば、 class A{ int a = 10; } といったクラスを作ってWEB-INF/classesにA.classを配置しても、JSP側から <% A a = new A(); %> <html><body> <%=a.a%> </body></html> といった使い方をした場合、シンボルを解釈できないといったエラーが出てしまいました。WEB-INF/classesにclassファイルを配置しただけでは自作クラスを使用することはできないのでしょうか ご存知の方、お力をお貸しいただけないでしょうか お願いします。 環境 J2SDK SE 1.4.2.12 eclipse3.1.2 Tomcat 5.0.28 sysdeoのtomcatPluginV31

    • ベストアンサー
    • Java
  • EclipseとTomcatのディレクトリ構成について。

    EclipseとTomcatでサーバサイドのプログラミングを勉強したいのですが、Tomcatのwebappsの下にJSPなどのファイルを置くと思うのですが、Eclipseで「動的Webプロジェクト」を選んだ後に、出来たディレクトリを見ると、workspaceのWebContentがTomcatのwebappsと同じ構成になるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcatのpropertiesファイルの読み込みについて

    Tomcat4.1でWEB-INF/classes/resource/a.propertiesというリソースファイルを <a.class>.getResourceAsStream("/resource/a.properties"); と記述して読み込もうとしています。実際この記述でサーバ(Solaris)上ではうまく読み込めているのですが同じソースにもかかわらずローカルの開発環境(All-In-One EclipseのTomcat)ではうまくいきません。 eclipseのTomcatのクラスパス周りの設定だとは思っていますがどこを設定していいかわかりません。 WEB-INF/classes/配下は特に設定が必要ないのでは?とも思いますし・・。 ちなみにサーブレット・その他のクラスなどは問題なく動いてるようです。 初めての質問ですのでちょっとわかりにくいかも知れませんが もしわかる方がいらっしゃればご回答よろしくお願いします。

    • ベストアンサー
    • Java
  • eclipse、Tomcatの設定

    お世話になります。 以前JAVAで開発していたプロジェクトを久々に動かそうと 思、新たにEclipse3.2、Tomcat5.5の環境を構築し、 TomcatのWebappsにWarをデプロイし、起動したのですが、 ブラウザからhttp://localhost:8080/プロジェクト名/index.html にアクセスしても404エラー画面が出力されてしまいます。 index.javaにSystem.outでデバッグしたのですが、 eclipseのコンソール上は何も出力されていないため、 TomcatとStrutsの連携がうまくいってなようです。 以前の設定でTomcatのWeb.xmlとServer.xmlを記述したのですが 何故うまくいかないのかわかりません。 どなたかご存知の方がいましたら教えていただけないでしょうか?

  • サーブレット起動後、HTTP404エラーが表示

    HTTP404エラーが表示され、どこを修正すればよいのかわかりませんので、どなたか教えて頂けないでしょうか?正直非常に困っておりますので、よろしくお願いいたします。java初心者です。 (状況の詳細) Eclipseでservletを実行すると以下の表示がされてしまい正常に処理されません。 HTTPステータス 404 - -------------------- type ステータスレポート メッセージ / 説明 The requested resource (/) is not available. ----------------------------------------- Apache Tomcat/7.0.26 実行環境 Eclipse3.7  (動的Webプロジェクトを作成し、デフォルト出力フォルダーをWebContent/WEB-INF/classesとしています。) java6 servlet3.0 Tomcat 7.0 利用文献:Eclipseで学ぶはじめてのサーブレット&JSP(SoftBankCreative)の第5章のSelect.javaを実行 以上、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • eclipseとtomcat

    eclipseとtomcat 質問失礼します。 現在Tomcatを用いたWebアプリケーションの開発を始めています。 参考にしているサイトは http://www.searchman.info/java_eclipse/1100.html です。 かなり初歩的な質問かもしれませんが調べても解決策が見つからないのでお願いします。 Eclipse上でTomcatプロジェクトを始める時に、プロジェクト名を入力して「終了」を選択しても、プロジェクト作成画面が閉じないという現象が起きています。 現状では左側のツリーには作成したプロジェクトはできており、そのまま開発もできています。プロジェクト作成ウィンドウはキャンセルで閉じています。 しかし、参考サイトによるとプロジェクトが作成されると、C:\Tomcat6_0\conf\server.xml のファイルの中に作成されたプロジェクトが書き加わっているはずなのですが、確認したところ加わっていない状態です。 結局eclipse上で作成したプログラムを動かしても「404エラー」が出てしまいます。 恐らくTomcatプロジェクトがしっかり作成できていないのが原因だと思うのですが・・・・・ 何か原因がわかる方いましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • eclipse でclassesフォルダーが表示されない

    Tomcat 6,Eclipse3.4 を使っています。 Eclipse でインストール時にワークスペースを作成して開発をしていますが、 何故か、WEB-INFフォルダーの下にあるclassesフォルダーがeclipse上で 見ることが出来ません。 Tomcatのマニュアル本などには、このclassesフォルダーにjavaファイルを保存するよう買いてあるので、「???」状態です。 アドバイスを宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう