| この記事の要点 |
|
エラー内容
Eclipse でソースを開いたときに以下のようなエラーが出ます:
Description: 型 org.apache.tomcat.InstanceManager を解決できません。
必要な .class ファイルから間接的に参照されています
Resource: MyServlet.java
Location: line 1
Type: Java の問題
同種の問題ビューエラー「ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした」も一緒に発生することが多いです。プロジェクト中の Servlet を継承しているクラス全てで同じエラーが出ます。
原因
org.apache.tomcat.InstanceManager は Tomcat のランタイム jarに含まれる API クラスです。javax.servlet.http.HttpServlet を継承するクラスでは Tomcat が間接的にこのクラスを参照するため、ビルドパスに Tomcat の jar が必要になります。
Eclipse の動的 Web プロジェクトでは「ターゲット・ランタイム」として Tomcat を関連付けることで、コンパイル時にこのクラスを参照可能にします。このエラーは以下の状況で発生:
- git clone した他人のプロジェクト(自分の Eclipse に未登録の Tomcat を期待している)
- Tomcat ランタイムが Eclipse に登録されていない
- プロジェクトにターゲット・ランタイムが選択されていない
- 登録済み Tomcat のパスが無効(Tomcat フォルダ移動・削除)
- ワークスペースを別 PC からコピーしたとき
切り分けのフロー
| 確認順 | 確認内容 | NG だった場合 |
|---|---|---|
| 1 | プロジェクトプロパティ → ターゲット・ランタイムで Tomcat にチェックが入っているか | チェックを入れる |
| 2 | ターゲット・ランタイムのリストに Tomcat が表示されているか | ウィンドウ → 設定 → サーバー → ランタイム環境で追加 |
| 3 | 登録された Tomcat のインストールパスが実在するか | 編集して正しいパスに修正 |
| 4 | Java のビルド・パス → ライブラリーに Apache Tomcat の jar 群が見えるか | 1〜3 をやり直し |
| 5 | プロジェクト → クリーン → 全プロジェクトを再ビルド | Maven プロジェクトなら更新も実行 |
対処手順
ステップ 1: Tomcat をランタイムとして登録
ウィンドウ (Window) → 設定 (Preferences)
→ サーバー (Server) → ランタイム環境 (Runtime Environments)
→ 追加 (Add...)
→ Apache → Apache Tomcat v9.0 を選択 → 次へ
→ Tomcat installation directory にパスを設定
Windows: C:\apache-tomcat-9.0.85
Mac: /usr/local/Cellar/tomcat@9/9.0.85/libexec
Linux: /opt/tomcat
→ JRE を選択 → 完了
ステップ 2: プロジェクトに関連付け
プロジェクト右クリック → プロパティ
→ ターゲット・ランタイム
→ Apache Tomcat v9.0 にチェック
→ 適用して閉じる
ステップ 3: 再ビルド
1. プロジェクト → クリーン (Project → Clean...)
2. 対象プロジェクトを選択 → 「クリーン」
3. Maven プロジェクトの場合は追加で:
プロジェクト右クリック → Maven → プロジェクトの更新 → 「OK」
4. 問題ビューが消えるのを確認
git clone 後にチームメンバー間で発生しないようにする
Eclipse の .settings/ や .classpath はリポジトリに含めても個人パスが入っているため、結局メンバー側で再設定が必要です。プロジェクトの README に「ターゲット・ランタイムに Tomcat 9.0 を設定すること」と明記しておくのが現実的です。
関連エラー
- ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした — 同じ原因。同時に直る
- The type javax.servlet.http.HttpServlet cannot be resolved — Servlet API jar 不足。Tomcat ランタイムで解決
- HTTP Status 404 - /myapp/ — ランタイム関連付けは出来ても WAR デプロイがされていない可能性
確認すべき構成ファイル
エラーが直らない場合は以下のファイルも確認します:
| ファイル | 確認内容 |
|---|---|
.project | <nature>org.eclipse.jst.j2ee.web.WebNature</nature> 等が含まれているか |
.classpath | org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v9.0 のエントリ |
.settings/org.eclipse.wst.common.project.facet.core.xml | jst.web ファセットのバージョンと Tomcat バージョンの整合性 |
web.xml | Servlet 4.0 (web-app_4_0.xsd) なら Tomcat 9、Servlet 5.0/6.0 なら Tomcat 10/11 が必要 |
Tomcat 9 と Tomcat 10 のパッケージ名の違い
Tomcat 10 以降では Jakarta EE 移行に伴い javax.servlet パッケージが jakarta.servlet にリネームされました:
// Tomcat 9 系
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// Tomcat 10 系以降
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
プロジェクトのインポート/import 文と、登録した Tomcat のバージョンが一致していないと、関連エラー「The type javax.servlet.http.HttpServlet cannot be resolved」が出ます。
サーバービューでの確認
Eclipse 下部の サーバービュー (Servers) でも切り分けが可能です:
- サーバービューに Tomcat が無ければ 右クリック → 新規 → サーバーで追加
- 追加した Tomcat に右クリック → 追加と除去 (Add and Remove)でプロジェクトをサーバーに登録
- Tomcat をダブルクリック → 「Use Tomcat installation」を選択(インストール先 jar を使用)
Eclipse のキャッシュが原因の場合
全ての設定が正しいのにエラーが取れない場合、Eclipse のメタデータ破損が原因のことがあります:
- Eclipse を終了
- ワークスペース直下の
.metadata/.plugins/org.eclipse.jdt.core/*.indexを削除 - Eclipse を
-cleanオプション付きで起動:eclipse.exe -clean - 起動後、プロジェクト → クリーン → 全プロジェクトのビルド
子ページはありません
- ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。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 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Oracle 19cの索引再構築|REBUILDの判断・ONLINEと制約 2026-10-26 18:52:58
- Oracle 19cのCREATE INDEX|UNIQUE・BITMAP・TABLESPACE・ONLINEと製品比較 2026-10-26 18:52:56
- Oracle 19cの列定義変更|MODIFYの型・属性保持と既存NULL 2026-10-26 18:15:03
- Oracle 19cの列追加|ADD・DEFAULTと既存行・NOT NULLの条件 2026-10-26 18:15:03
- Oracle 19cのCREATE TABLE|型・制約・外部キーとCTASの注意点 2026-10-26 18:15:00
- Oracle 19cのDROP INDEX|制約依存・ONLINEとINVISIBLE 2026-10-26 17:21:20
- Oracle 19cのDROP TABLE|CASCADE・PURGEと復旧条件 2026-10-26 17:21:20
- Oracle 19cのカラム削除|DROP COLUMN・SET UNUSEDと依存・取消条件 2026-10-26 17:21:19
- Oracle 19cの索引操作|作成・再構築・削除と製品別の比較 2026-10-26 16:39:47
- Oracle 19cの表DDL|表操作の選び方とCREATE・ALTER・DROP・TRUNCATE 2026-10-26 16:39:47
- TRUNCATE TABLEの注意点|空の子表でも残る外部キーと製品別の取消条件 2026-10-26 16:39:45
- Oracle 19cのSAVEPOINT|部分ロールバック・COMMIT・DDLの境界 2026-10-26 15:51:40
- Oracle 19cのUPDATE文|更新件数・NULL・相関サブクエリ・MERGE 2026-10-26 15:51:40
- Oracle 19cのHAVING句|WHEREとの違い・NULL・集計条件 2026-10-26 15:51:40
- Oracleの制約|NOT NULL・UNIQUE・主キー・外部キー・CHECK 2026-10-26 15:51:38