ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 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
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 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
コメントを削除してもよろしいでしょうか?