ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
エラーの状況
Eclipse で動的 Web プロジェクト(Dynamic Web Project)を開いたときに、問題ビューに以下のエラーが表示されます:
Description: ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。
org.apache.tomcat.InstanceManager のクラス・ファイルが見つかりません。
ビルド・パスを修正してから、プロジェクトの取り消しおよび再ビルドを行ってください。
Resource: (project name)
Path: (project path)
Location: 不明
Type: Java の問題
Eclipse が InstanceManager クラスを見つけられず、プロジェクト全体のビルドが失敗している状態です。同時に「型 org.apache.tomcat.InstanceManager を解決できません」が複数の Servlet クラスで出ます。
原因
org.apache.tomcat.InstanceManager は Tomcat のランタイム jar に含まれるクラスです(実体は $CATALINA_HOME/lib/tomcat-api.jar または tomcat-util.jar)。Eclipse は動的 Web プロジェクトに「ターゲット・ランタイム」として Tomcat を関連付けることで、このクラスをクラスパスに通します。
このエラーは以下の状況で発生:
- git clone した他人のプロジェクトを初めて開いたとき(最頻出)
- Eclipse に Tomcat ランタイムを登録していない
- 登録済み Tomcat のパスが無効(フォルダ移動・削除)
- プロジェクトのターゲット・ランタイムが選択されていない
- ワークスペースを別 PC からコピーしてきたとき
対処1: ターゲット・ランタイムを設定
プロジェクトを右クリックして プロパティ → ターゲット・ランタイムを開き、Tomcat にチェックを入れます。
| 手順 | 操作 |
|---|---|
| 1 | プロジェクト右クリック → プロパティ (Properties) |
| 2 | 左ペインから ターゲット・ランタイム (Targeted Runtimes) を選択 |
| 3 | 表示されている Tomcat (Apache Tomcat v9.0 など) にチェック |
| 4 | 適用して閉じる |
| 5 | プロジェクト右クリック → Maven → プロジェクトの更新 (Maven プロジェクトの場合) |
| 6 | プロジェクト右クリック → クリーン → ビルド |
対処2: ランタイム自体が登録されていない場合
「ターゲット・ランタイム」のリストが空、または Tomcat が表示されない場合は、Eclipse 側に Tomcat ランタイムを先に登録します。
ウィンドウ (Window) → 設定 (Preferences)
→ サーバー (Server)
→ ランタイム環境 (Runtime Environments)
→ 追加 (Add...) を押す
→ Apache → Apache Tomcat v9.0 (使うバージョン) を選択
→ 「次へ」
→ Tomcat installation directory にインストール先を指定
例: C:\apache-tomcat-9.0.85
Mac: /usr/local/Cellar/tomcat@9/9.0.85/libexec
→ JRE を選択
→ 「完了」
追加後、プロジェクトのプロパティに戻って先ほどの「対処1」を実行します。
対処3: Tomcat フォルダを移動した場合
「ランタイム環境」に Tomcat はあるけれど、Tomcat フォルダ自体を移動・削除した場合は、登録済み Tomcat の「編集 (Edit)」からインストールパスを正しいパスに直します。
確認
対処後、プロジェクトのプロパティ → Java のビルド・パス → ライブラリーを開くと、Apache Tomcat の jar 群が読み込まれていることを確認できます。Servlet クラスを開いて import org.apache.tomcat.InstanceManager; がエラーにならなければ解決です。
関連
- 同じ原因で「型
org.apache.tomcat.InstanceManagerを解決できません」も同時に発生する - Maven プロジェクトなら
pom.xmlの<dependency>に Servlet API がprovidedスコープで入っていることを確認 - Gradle なら
compileOnly 'jakarta.servlet:jakarta.servlet-api:6.0.0'相当
サーバービュー側からの確認
Eclipse 下部の サーバービュー (Servers) でも切り分けが可能です。表示されていない場合は ウィンドウ → ビューの表示 → サーバーで開きます。
- サーバービューに登録された Tomcat が 「停止」状態ならまだ問題ない
- サーバービュー自体が空なら 右クリック → 新規 → サーバーから追加
- 追加した Tomcat に右クリック → 追加と除去でプロジェクトをサーバーに登録
- サーバービューで Tomcat をダブルクリック → サーバーの場所が「Use Tomcat installation」になっていれば本物の Tomcat が使われる
Maven プロジェクトの場合
Maven プロジェクトでも同じ症状が出ます。pom.xml に Servlet API 依存を provided スコープで追加することでも代替可能です(Tomcat ランタイム関連付けと同等の効果):
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<!-- Tomcat 9 系(javax.servlet)の場合 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
provided スコープにすることで、デプロイ時には Tomcat 側の jar が使われ、ビルド時のみクラスパスに含まれるようになります(重複起因のエラーを避けられます)。
解決後に何度も再発する場合
| 症状 | 確認ポイント |
|---|---|
| Eclipse を再起動すると再発 | ワークスペースの破損 — 別ワークスペースで開き直す |
| 特定プロジェクトだけ再発 | .project / .classpath が古い → 削除して「Maven プロジェクトとしてインポート」 |
| 全プロジェクトで再発 | Eclipse のキャッシュ破損 — workspace/.metadata/ を退避してから再起動 |
| Servlet 5.x プロジェクトで発生 | Tomcat 10 系(jakarta.servlet)を使う必要あり。Tomcat 9 だと別エラー |
関連情報
- 同じ原因で「型
org.apache.tomcat.InstanceManagerを解決できません」も発生 - Tomcat 10 系では
javax.servlet→jakarta.servletへパッケージ名が変更されている - Spring Boot 3 + 内蔵 Tomcat の場合は外部 Tomcat が不要なので、別の構成エラーを疑う
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。org.apache.tomcat.InstanceManager のクラス・ファイルが見つかりません。ビルド・パスを修正してから、プロジェクトの取り消しおよび再ビルドを行ってください。
- 型 org.apache.tomcat.InstanceManager を解決できません。必要な .class ファイルから間接的に参照されています
- 要求されたリソースへのアクセスが拒否されました
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?