-PR-
解決済み

【Java】Eclipseで作成したTomcatプロジェクトへブラウザ

  • すぐに回答を!
  • 質問No.5999881
  • 閲覧数8115
  • ありがとう数16
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 100% (3/3)

【Java】Eclipseで作成したTomcatプロジェクトへブラウザからアクセスできません。
Tomcatは問題なく起動していて、Apache Tomcatへはアクセスできます。
以下に詳細を記載していますのでアドバイスをお願いします。

環境は以下の通りです。
・Windows XP
・Internet Explorer8.0 or Firefox
・Eclipse Platform 3.4.2 Ganymede (All in one)
・Tomcat6.0
・jre1.6

EclipseでTomcatを起動でき、その際のコンソールにも特にエラーはありません。
Tomcatを起動した際に http://localhost:8080/ へアクセスすると、Apache Tomcatへ繋がります。
なので問題なくTomcatは起動しています。
EclipseでTomcatプロジェクトとして”mbshop”という名のプロジェクトを作成しました。
http://localhost:8080/mbshop/とアクセスするとHTTPステータス 404 - /mbshop/
と表示されてしまいます。

mbshop配下にWEB/INFがあり、その中にweb.xmlを記述しています。
web.xmlの記述内容は以下の通りです。


<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app
version="2.5"
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_5.xsd"

<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
</web-app>


Tomcatが起動できApache Tomcatのサイトへアクセスできるのに、
Eclipse内のTomcatプロジェクトが表示できないのは、なぜでしょうか。
いくら調べても原因が見つかりません。
ご存知の方がいれば、アドバイスを下さい。
宜しくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル9

ベストアンサー率 81% (31/38)

Heliosに入れ替えても同じやり方ではうまく行かないと思います。

Eclipse Platform 3.4.2 Ganymede (All in one)だってWTP入ってますよ。
また、Tomcat6.0でもInvokerServletはありますから、
今回の問題には直接の関係は無いと思います。

試しにミニマム構成でプロジェクトの作成から実行までやってみましょう。

まず、右上のツールバーからJavaEEパースペクティブを選択します。
(ウィンドウ>パースペクティブを開く>その他>JavaEEでも可)
次にウインドウメニューからパースペクティブのリセットを選んでください。
IDEの下の方にサーバーというタブがあると思いますので、それを選択して下さい。
ここに、Tomcatが登録されていなかったら、
サーバーウィンドウを右クリックして新規>サーバーでTomcatを登録して下さい。
(ウィンドウ>設定>サーバー>ランタイム環境でも可)

Tomcatプロジェクトではなく、動的Webプロジェクト(Dynamic Web Project)で、
プロジェクトを作成する。
WebContentの直下に、index.jsp等のファイルを作成する。

作成したindex.jspを右クリックして、実行>サーバーで実行を選ぶと、
どのサーバーで実行するか聞かれるので、実行するサーバーを選択してください。

次へで、実行するプロジェクトをサーバーに登録する画面が表示されるので、
先程作成した動的Webプロジェクトが構成プロジェクトに登録されている事を確認して、
完了を押してください。

Tomcatが起動されて、内蔵ブラウザでindex.jspが表示されるはずです。
(WebContentの中のファイルを選択した状態で実行したので、
自動的にURLを組み立ててくれている)

蛇足ですが、WTPでTomcatを起動した場合、http://localhost:8080/では404になると思います。
お礼コメント
stellasia

お礼率 100% (3/3)

今回ベストアンサーに選ばせて頂いた理由は、私の知識や技能が未熟であり、それに対して丁寧に説明を頂いた点をあげます。Lieserlさんのアドバイスは画面上の操作について非常に的確で丁寧な内容であったため、知識が足りなかった私にとってわかりやすかったです。
なので本音を言えば、今回アドバイスを頂いた皆様をベストアンサーとしたいくらいです。
Lieserlさん、的確なアドバイスをありがとうございました。
私が学んでいたプロジェクトの作成方法は非常に古いものであったことに気づきました。
Lieserlさんの説明いただいた内容の通りに操作をしたところ、すべてうまくいきました。
またこのような操作を知らなかった自分がお恥ずかしいです。
今回の教訓を大事にし、今後色々な視点からEclipseを勉強していきたいと思います。

非常に丁寧に教えていただき、ありがとうございました。
投稿日時 - 2010-06-29 06:48:11

その他の回答 (全2件)

  • 回答No.1
レベル8

ベストアンサー率 48% (13/27)

WTPでは、tomcat の制御は WTP側で行います。
WTP側には tomcat/index.html は存在しないので、
http://localhost:8080/
にアクセスしても、404エラーになります。

逆に、tomcat を Eclipse の外から直接起動すると、
http://localhost:8080/
にはアクセスできるようになりますが、すでに8080ポートが使用されているため、WTP から tomcat へはアクセスできなくなります。
ポートを変えてやればアクセスできるようになりますが、tomcat の制御を tomcat側とWTP側と両方から行うことになりますので、おかしなことになります。
tomcat managerは、deploy後のアプリ&サーバを管理する事を想定しているものなので、開発マシン上でのTomcatの制御はWTPを通して行うのがよいです。
お礼コメント
stellasia

お礼率 100% (3/3)

erichgunmaさん
とても丁寧に回答頂き、ありがとうございました。
非常に参考になりました。
私は今現在、Eclipseをdownloadした際に自動的に備え付けられていたTomcatを使用しています。
別の方より「WTPの場合はmbshop/WebContent/WEB-INFという具合に、TomcatプロジェクトであるmbshopとWEB-INFの間の階層にWebContentがある」という指摘を受けました。
ですが、私のEclipseを見てもWebContentという名称はありませんでした。

私が使用しているEclipseがWTPであるかどうかが一つ問題なのかもしれませんが
WTPで使用するにはどのように設定すればよいでしょうか。
PASS・変数の設定も見直す必要などもありますでしょうか。
投稿日時 - 2010-06-28 01:18:26


  • 回答No.2
レベル8

ベストアンサー率 48% (13/27)

JavaEE6, Tomcat7に対応した Eclipse3.6 Helios が6月24日にリリースされたので、これを機に、Helios に乗り換えたらよいと思います。

www.eclipse.orgから、

Eclipse IDE for Java EE Developers

をダウンロードすれば、それがWTP付きのEclipseです。
WTPを使って Dynamic Web Project を作成すれば、デフォルト値を変更しない限り、WebContent は自動的に作成されます。

それから WTP では、サーバという概念が従来と異なり、プロジェクト単位でサーバ情報が持たれるので、invoker Servlet などというものは、もはや存在価値を持ちません。

Eclipse の開発スピードはとても速いので、日本語で書かれたネット上の情報は、そのほとんどが現在では時代遅れのものになっています。

出来るだけ、英語で書かれた本家のドキュメントを参照するようにしないと、日本のプログラマは世界から置いてきぼりをくってしまいます。
お礼コメント
stellasia

お礼率 100% (3/3)

erichgunmaさん
アドバイスを頂きありがとうございます。
新しいバージョンのEclipseも続々と出ていますね。
扱いに慣れてくれば使用を検討したいです。
英語を理解した上でJavaを取り組むことは非常に重要ですね。
私は根本的な基礎知識が不足していたようで、今後の課題は山積みですが
一つ目標が持てた気がします。
Javaをマスターし、外国人との共有も図れるよう立派なプログラマーを
目指していきたいです。非常に貴重な意見をありがとうございました。
投稿日時 - 2010-06-29 06:41:37
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ