ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Tomcat エラーの種類
| 種類 | 典型例 | 主な原因 |
|---|---|---|
| ビルド/コンパイル時 | org.apache.tomcat.InstanceManager not found / ビルドパス不完全 | Eclipse のターゲットランタイム未設定 |
| 起動失敗 | Address already in use: bind / Failed to start | ポート競合 / 既存プロセス / 設定不正 |
| クラス解決 | ClassNotFoundException / NoClassDefFoundError | lib jar 不足 / 依存衝突 |
| HTTP エラー | 404 Not Found / 500 Internal Server Error | マッピング不正 / コード例外 |
| メモリ | java.lang.OutOfMemoryError / Metaspace | -Xmx 不足 / メモリリーク |
| WAR 配置 | モジュール名が無効 / WAR が展開されない | 動的 Web ファセット未設定 / packaging 不一致 |
| 文字コード | 日本語文字化け / ???? 表示 | URIEncoding / 文字エンコーディング設定 |
切り分けの起点: catalina ログ
Tomcat エラーは大半が catalina.out または catalina.YYYY-MM-DD.log に出ます:
# 標準的なログ場所
$CATALINA_HOME/logs/
├── catalina.out ← 標準出力 / エラー出力(最重要)
├── catalina.2024-05-15.log ← Tomcat 自身のログ
├── localhost.2024-05-15.log ← Web アプリのデプロイ・初期化ログ
├── manager.2024-05-15.log ← Manager アプリのログ
├── host-manager.2024-05-15.log
└── localhost_access_log.2024-05-15.txt ← アクセスログ
# リアルタイム監視
tail -f $CATALINA_HOME/logs/catalina.out
# エラーだけ抽出
grep -iE "(error|exception|severe)" $CATALINA_HOME/logs/catalina.out | tail -50
# Docker の場合
docker logs -f tomcat-container
頻出エラー Top 10 と対処
| エラー | 原因 | 対処 |
|---|---|---|
| java.net.BindException: Address already in use | ポート 8080 が他プロセスで使用中 | netstat -ano \| findstr 8080 で確認 / 別ポートに変更 |
| org.apache.tomcat.InstanceManager not found | Eclipse のターゲットランタイム未設定 | プロパティ → ターゲットランタイムで Tomcat にチェック |
| HTTP Status 404 - Not Found | コンテキストパス / サーブレットマッピング違い | web.xml と @WebServlet の URL パターン確認 |
| java.lang.OutOfMemoryError: Java heap space | ヒープ不足 | setenv.sh で -Xmx2g 指定 |
| java.lang.OutOfMemoryError: Metaspace | クラスロード過多(hot deploy で増える) | -XX:MaxMetaspaceSize=512m |
| ClassNotFoundException | lib に jar が無い / 依存解決失敗 | WEB-INF/lib に jar を配置 or pom.xml 修正 |
| java.lang.IllegalStateException: getOutputStream() has already been called | getWriter と getOutputStream の混在 | どちらかに統一 |
| The requested resource is not available | WAR がデプロイされていない | webapps/ に配置 or manager で deploy |
| org.apache.catalina.core.StandardContext.startInternal Error | アプリ初期化失敗 | localhost ログでスタックトレース確認 |
| java.io.UnsupportedEncodingException: ${file.encoding} | 変数展開が失敗 | setenv.sh の構文ミス確認 |
調査フローチャート
- catalina.out をスクロールして最新のエラーを確認
- スタックトレースの Root Cause(Caused by:)を探す
- エラーメッセージの固有部分でこの Wiki / Google 検索
- 環境問題か、コード問題かを見極める
- 環境: ポート / 設定ファイル / ライブラリ → Tomcat / OS の確認
- コード: アプリ起動時 → アプリのロジック修正
- Tomcat バージョンを確認(Servlet API のバージョン整合性)
- 必要なら WAR 再ビルド・再配置でクリーンに
Tomcat バージョンと Servlet API
| Tomcat | Servlet API | パッケージ | JDK 最低 |
|---|---|---|---|
| 7.0 | 3.0 | javax.servlet | JDK 6+ |
| 8.5 | 3.1 | javax.servlet | JDK 7+ |
| 9.0 | 4.0 | javax.servlet | JDK 8+ |
| 10.0 / 10.1 | 5.0 / 6.0 | jakarta.servlet | JDK 8 / 11+ |
| 11.0 | 6.1 | jakarta.servlet | JDK 17+ |
Tomcat 10 でパッケージが javax → jakarta に変更。古いコードを Tomcat 10 にデプロイすると ClassNotFoundException 連発するので注意。
関連子ページ
- InstanceManager クラスが見つかりません
- 型 InstanceManager を解決できません
- ビルド・パスが不完全です
- モジュール名が無効です (WAR エクスポート)
- サーバとプロジェクトの紐付け
- Tomcat プロジェクトのディレクトリ構成
各エラーの詳細は子ページを参照してください。一般的な調査の起点は本ページのフローチャートです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?