質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

10594閲覧

Eclipse Tomcat起動はするが404表示

syosinsya_in

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2021/12/05 03:19

編集2021/12/05 04:50

Tomcatは起動しますが表示できず404が出ます

Webアプリケーションを作りたいため、
EclipseとTomcatを使ってサーブレットを表示させたいのですが404が表示されます。
どこを改善したら表示できますでしょうか…?

色々調べましたが自力で解決策を見つけられずこの場で質問させて頂きました。
どうかご教授頂けないでしょうか。よろしくお願い致します。
なお、「http://localhost:8080/」のみきちんと表示されます。

404が出る

開発環境

Eclipse 2020-12 (4.18.0)
Tomcat バージョン9.X(+)
OS Windws10 Home

試したこと

1. コンテキスト・ディレクトリとTomcatホームにTomcatの配置場所を指定
コンテキスト・ディレクトリの設定

2. CATALINA_HOMEJAVA_HOMEJRE_HOMEをシステム環境変数に追加
変数に対する値はそれぞれ下記表の通り設定しています。

システム環境変数

変数
CATALINA_HOMETomcatの配置場所を指定
JAVA_HOMEJavaの配置場所を指定
JRE_HOMEJavaの中に6、7、8のフォルダがありどれがいいか分からずなんとなく6を指定

3. システム環境変数でPathの語尾に「%CATALINA_HOME%\bin;」を追記
←Pathの中に既存のものが多くどれに追記したらいいか分からずなんとなくで「%SYSTEMROOT%\System32\WindowsPowerShell\v1.0;」の語尾に追記しました…。

4. コンテキストパスの名前確認
bookのプロパティ

5. コンテキスト定義の更新
←「操作が成功しました。」と出てほしかったのですが「操作が失敗しました。C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\conf\Catalina\localhost\book.xml(指定されたパスが見つかりません。)See<workspace>/.metadata.log file」と表示されました。

 ※C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\conf\Catalina\localhostにbook.xmlは置いています。

↓参考にさせて頂いたサイト
404エラーが発生した際の対処法
コンテキスト定義の更新結果
book.xmlの中身
<workspace>/.metadata.log fileの中身の画像です。
イメージ説明

Tomcatを起動したときのコンソール

Tomcatを起動したときのコンソールの中で下記抜粋した部分が気になります。
しかし具体的に何をしたら解決できるのか分かりません…。

重大: コンポーネント[Connector[HTTP/1.1-8080]] の初期化に失敗しました。 [日 12月 05 10:18:00 JST 2021]

重大: アドレス [localhost] のポート番号 [8005] にサーバー停止ソケットを作成できませんでした (基本ポート番号は [8005]、オフセットは [0] です) [日 12月 05 10:18:00 JST 2021]

情報: ProtocolHandler ["http-nio-8080"] を一時停止します。 [日 12月 05 10:18:00 JST 2021]
情報: サービス [Catalina] を停止します [日 12月 05 10:18:00 JST 2021]

情報: ProtocolHandler ["http-nio-8080"]の停止中 [日 12月 05 10:18:00 JST 2021]

情報: ProtocolHandler ["http-nio-8080"] を破棄します。 [日 12月 05 10:18:00 JST 2021]

Tomcat

1情報: Serverのバージョン名: Apache Tomcat/9.0.41 [日 12月 05 10:17:59 JST 2021] 2情報: Server ビルド: Dec 3 2020 11:43:00 UTC [日 12月 05 10:17:59 JST 2021] 3情報: サーバーのバージョン番号: 9.0.41.0 [日 12月 05 10:17:59 JST 2021] 4情報: OS 名: Windows 10 [日 12月 05 10:17:59 JST 2021] 5情報: OS バージョン: 10.0 [日 12月 05 10:17:59 JST 2021] 6情報: アーキテクチャ: amd64 [日 12月 05 10:17:59 JST 2021] 7情報: Java Home: C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\java\15 [日 12月 05 10:17:59 JST 2021] 8情報: JVM バージョン: 15.0.1+9 [日 12月 05 10:17:59 JST 2021] 9情報: JVM ベンダ: AdoptOpenJDK [日 12月 05 10:17:59 JST 2021] 10情報: CATALINA_BASE: C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9 [日 12月 05 10:17:59 JST 2021] 11情報: CATALINA_HOME: C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9 [日 12月 05 10:17:59 JST 2021] 12情報: コマンドライン引数: -Dcatalina.home=C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/tomcat/9 [日 12月 05 10:17:59 JST 2021] 13情報: コマンドライン引数: --add-opens=java.base/java.lang=ALL-UNNAMED [日 12月 05 10:17:59 JST 2021] 14情報: コマンドライン引数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED [日 12月 05 10:17:59 JST 2021] 15情報: コマンドライン引数: -Dcatalina.base=C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/tomcat/9 [日 12月 05 10:17:59 JST 2021] 16情報: コマンドライン引数: -Djava.io.tmpdir=C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/tomcat/9\temp [日 12月 05 10:17:59 JST 2021] 17情報: コマンドライン引数: -Dfile.encoding=UTF-8 [日 12月 05 10:17:59 JST 2021] 18情報: コマンドライン引数: -XX:+ShowCodeDetailsInExceptionMessages [日 12月 05 10:17:59 JST 2021] 19情報: 商用環境に最適な性能を発揮する APR ベースの Tomcat ネイティブライブラリが java.library.path [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\java\15\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/eclipse//jre/bin/server;C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/eclipse//jre/bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;"C:\Windows\System32\WindowsPowerShell\v1.0\;C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\bin;";C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Common Files\NEC\SmartVision;C:\Program Files\Common Files\NEC\SmartVision;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\vvvvv\AppData\Local\Microsoft\WindowsApps;;C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\eclipse;;.] に存在しません。 [日 12月 05 10:17:59 JST 2021] 20情報: プロトコルハンドラ ["http-nio-8080"] を初期化します。 [日 12月 05 10:17:59 JST 2021] 21重大: コンポーネント[Connector[HTTP/1.1-8080]] の初期化に失敗しました。 [日 12月 05 10:18:00 JST 2021] 22情報: サーバーの初期化 [440]ms [日 12月 05 10:18:00 JST 2021] 23情報: サービス [Catalina] を起動します [日 12月 05 10:18:00 JST 2021] 24情報: サーブレットエンジンの起動:[Apache Tomcat/9.0.41] [日 12月 05 10:18:00 JST 2021] 25情報: Webアプリケーションディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\docs] を配備します [日 12月 05 10:18:00 JST 2021] 26情報: ディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\docs] の Web アプリケーションの配備は [187] ms で完了しました。 [日 12月 05 10:18:00 JST 2021] 27情報: Webアプリケーションディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\examples] を配備します [日 12月 05 10:18:00 JST 2021] 28情報: ContextListener: contextInitialized() [日 12月 05 10:18:00 JST 2021] 29情報: SessionListener: contextInitialized() [日 12月 05 10:18:00 JST 2021] 30情報: ContextListener: attributeAdded('StockTicker', 'async.Stockticker@2e029d61') [日 12月 05 10:18:00 JST 2021] 31情報: ディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\examples] の Web アプリケーションの配備は [317] ms で完了しました。 [日 12月 05 10:18:00 JST 2021] 32情報: Webアプリケーションディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\host-manager] を配備します [日 12月 05 10:18:00 JST 2021] 33情報: ディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\host-manager] の Web アプリケーションの配備は [32] ms で完了しました。 [日 12月 05 10:18:00 JST 2021] 34情報: Webアプリケーションディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\manager] を配備します [日 12月 05 10:18:00 JST 2021] 35情報: ディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\manager] の Web アプリケーションの配備は [15] ms で完了しました。 [日 12月 05 10:18:00 JST 2021] 36情報: Webアプリケーションディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\ROOT] を配備します [日 12月 05 10:18:00 JST 2021] 37情報: ディレクトリ [C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\webapps\ROOT] の Web アプリケーションの配備は [16] ms で完了しました。 [日 12月 05 10:18:00 JST 2021] 38情報: サーバーの起動 [633]ms [日 12月 05 10:18:00 JST 2021] 39重大: アドレス [localhost] のポート番号 [8005] にサーバー停止ソケットを作成できませんでした (基本ポート番号は [8005]、オフセットは [0] です) [日 12月 05 10:18:00 JST 2021] 40情報: ProtocolHandler ["http-nio-8080"] を一時停止します。 [日 12月 05 10:18:00 JST 2021] 41情報: サービス [Catalina] を停止します [日 12月 05 10:18:00 JST 2021] 42WARNING: An illegal reflective access operation has occurred 43WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/tomcat/9/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs 44WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase 45WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 46WARNING: All illegal access operations will be denied in a future release 47情報: SessionListener: contextDestroyed() [日 12月 05 10:18:00 JST 2021] 48情報: ContextListener: contextDestroyed() [日 12月 05 10:18:00 JST 2021] 49情報: ProtocolHandler ["http-nio-8080"]の停止中 [日 12月 05 10:18:00 JST 2021] 50情報: ProtocolHandler ["http-nio-8080"] を破棄します。 [日 12月 05 10:18:00 JST 2021]

Tomcatを起動したときのコンソール画面

Tomcatを再起動したときのコンソール全文

文字数オーバーのため画像貼り付けています。
Tomcatを再起動したときのコンソール画面

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/12/05 04:25

気になった点を2点、挙げさせていただきます。 1. コンテキスト・ディレクトリとTomcatホームにTomcatの配置場所を指定 につきまして、「Tomcatホーム」と「コンテキスト・ディレクトリー」のパスの区切りが「¥」ではなく、「/」になっていますが、WindowsでこれはOKでしょうか? 5. コンテキスト定義の更新 「<workspace>/.metadata.log」 こちらのログはありますでしょうか?
syosinsya_in

2021/12/05 04:48

コメントありがとうございます。 >1. コンテキスト・ディレクトリとTomcatホームにTomcatの配置場所を指定 >につきまして、「Tomcatホーム」と「コンテキスト・ディレクトリー」のパスの区切りが「¥」で >はなく、「/」になっていますが、WindowsでこれはOKでしょうか?  →「¥」に変えたところ、Tomcatが動かなくなりServletのインポートもできなくなったため   「/」で問題ないのかなと思います。 >5. コンテキスト定義の更新 >「<workspace>/.metadata.log」 >こちらのログはありますでしょうか?  →「<workspace>/.metadata.log」のログですが、プリントスクリーンしたものを   本文に追記しますので、見て頂けましたら幸いです…!   よろしくお願い致します。
mike2mike4

2021/12/05 05:01

windodwsは¥でも/でも問題ありません。 webサーバーからみて404は表示するファイルがないというエラーです。レンタルサーバーで表示させようとしているのなら、ファイルをデプロイした場所が間違ってます。
退会済みユーザー

退会済みユーザー

2021/12/05 05:09

Windowsは「\」でも「/」でもよいのですね・・ すみませんでした・・ ログファイルのエラーメッセージを見ると、 C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\conf\Catalina\localhost\book.xml ではなく、 C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\conf\Catalina\localhost\9\book.xml がないからエラーといっているようですね。
syosinsya_in

2021/12/05 05:23

あっ、失礼しました。 ログファイルの内容見て頂きありがとうございます。 C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\tomcat\9\conf\Catalina\localhost\9に book.xmlを入れなおしてコンテキスト定義の更新をしたところ、「操作が成功しました。」と出ました! ですがTomcatを再起動しても404のままでした…
退会済みユーザー

退会済みユーザー

2021/12/05 05:33

> 重大: アドレス [localhost] のポート番号 [8005] にサーバー停止ソケットを作成できませんでした (基本ポート番号は [8005]、オフセットは [0] です) [日 12月 05 10:18:00 JST 2021] このエラーなので、8005のポートが使われてしまっているから開始できないのでしょうか? PCを再起動したらポートが解放されるでしょうか? あるいは、Tomcatのポート番号を変更するかでしょうか。 (情報が古いかもしれないですが引用です) > Tomcatをサービスとして起動する際は「8005,8080,8009」という3つのポート番号がコンピュータ内で使われます。 > Eclipseのツールバーのウィンドウを選択し、そこから「ビューの表示」→「その他」→「サーバー」を選んで、下記のように「サーバー」ビューが表示させます。 > 今回はわざと、同じ実行構成のサーバーを2つ作成して起動させ、ポート番号の競合を起こしました。起動出来なかった方のサーバー構成名をダブルクリックすると、サーバー設定を修正できる画面が表示されます。 > この画面右側の「ポート」という項目を修正します。 > 「8005,8080,8019」だった番号を修正し、「8015,8090,8019」に修正します。 > https://www.kenschool.jp/blog/?p=3546
syosinsya_in

2021/12/05 06:31

ご丁寧にありがとうございます。リンク先も確認致しました。 PCを再起動しましたが変わりませんでした。 また、ポート番号を8015、8090に修正してTomcat起動しましたが、変わらず 「重大: アドレス [localhost] のポート番号 [8005] にサーバー停止ソケットを作成できませんでした (基本ポート番号は [8005]、オフセットは [0] です) [日 12月 05 15:27:34 JST 2021]」 「重大: コンポーネント[Connector[HTTP/1.1-8080]] の初期化に失敗しました。 [日 12月 05 15:27:33 JST 2021]」 と出てきました… server.xmlで直接ポート番号の指定をしたほうがいいのかなと思ったのですが、server.xmlを見つけられない状態です。(server.xmlはCATALINA_HOME/conf/にあるそうですがCATALINA_HOMEも見つけられないです…)
退会済みユーザー

退会済みユーザー

2021/12/05 06:43

環境の設定値が悪いのですかね? 質問欄から気になる設定値をピックアップしてみました。 1. コンテキスト・ディレクトリとTomcatホームにTomcatの配置場所を指定 Tomcatホーム:C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/tomcat/9 コンテキスト・ディレクトリー:C:/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/tomcat/9\conf\Catalina\localhost\9 2. CATALINA_HOME、JAVA_HOME、JRE_HOMEをシステム環境変数に追加変数に対する値はそれぞれ下記表の通り設定しています。 CATALINA_HOME:C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades (「\tomcat\9」ではなくて大丈夫でしょうか。表に「Tomcatの配置場所を指定」と記載されていたため) > CATALINA_HOMEも見つけられないです… これはどういった意味でしょうか。 おそらく今の環境変数の設定だとしたら、次の物理パスのことでしょうか。 C:\pleiades-2020-12-java-win-64bit-jre_20201222\pleiades\conf\ そうだとするとやっぱり1。の「コンテキスト・ディレクトリー」との関係がおかしい気がしますね。
YT0014

2021/12/05 14:11

2つめの画像の設定にて、エラー「値は既存のディレクトリーでなければいけません」が表示されています。 Tomcatホームかコンテキストディレクトリーの指定が正しくないのでしょう。 キーボードから打ち込むのではなく、隣の[参照]ボタンを使用して、存在しているフォルダを正しく設定してください。
guest

回答1

0

自己解決

まず初めに、親身に教えてくださった方々、本当にありがとうございました。

知人の有識者に聞いたところ、原因として

  1. URL指定の重複の可能性(@WebServlet(urlPatterns= {"/chapter3/hello"}))
  2. 本来自動で作られるbook.xmlの他に、自分でメモ帳よりbook.xmlを作成してしまっている点

などが挙げられました。

「1.」→重複箇所なし
「2.」→自分で作成したbook.xml(コンテキスト定義の更新をして作られたものとはまた別)を削除

結果やはり繋がらず、Tomcatをアンインストールして入れなおすとサイト表示されるようになりました。

投稿2021/12/11 06:42

syosinsya_in

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問