| 任意指定 |
-
-**基本設定**
-
-```xml
-
-
-
-
-
-
-
-
-
-
-```
-
-**任意の設定項目も含めた例**
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-FileBatchAction.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-FileBatchAction.md
deleted file mode 100644
index ee5dc47bf..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-FileBatchAction.md
+++ /dev/null
@@ -1,121 +0,0 @@
-## ファイル入力のバッチ業務アクションハンドラのテンプレートクラス
-
-**クラス名:** `nablarch.fw.action.FileBatchAction`
-
------
-
-### 概要
-
-本クラスは、ファイルを入力とした [バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-architectural-pattern-batch.md) における
-業務アクションハンドラを実装する際に使用できるテンプレートクラスである。
-
-基本的な構造は、 [バッチ処理用業務アクションハンドラのテンプレートクラス](../../component/handlers/handlers-BatchAction.md) と同じであるが、業務処理は **handler()** メソッドに実装するのでは無く、
-ヘッダー、データ、トレーラーなどのレコード種別ごとに、以下のシグニチャをもつ個別のメソッドに実装することができる。
-
-```java
-public Result do[レコード種別名](DataRecord record, ExecutionContext context);
-```
-
-また、本クラスでは、ファイル入力のバッチ実装に特化した以下の機能を簡便に実装することができる。
-
-* ファイル内容の事前検証の実行
-* バッチ処理がエラー等の理由で中断した場合の再開機能
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| ファイル入力バッチ処理用業務アクションハンドラ | nablarch.fw.action.FileBatchAction | DataRecord | Result | 設定されたファイル内のデータレコードを入力として業務処理を実行する。 | 処理結果オブジェクトを返す。(通常はResult.Successを返す) | - |
-
------
-
-本クラスを継承してアクションハンドラを実装するには、以下のテンプレートメソッドを必要に応じて実装する。
-
-| メソッド名 | 内容 |
-|---|---|
-| do[レコード種別名]() | (必須実装) 各レコード種別ごとの業務処理を実行する。 正常に終了した場合は、ハンドラの処理が正常終了したことを表す マーカーオブジェクト([Result.Success](../../javadoc/nablarch/fw/Result.Success.html))をリターンすればよい。 |
-| getFormatFileName() | (必須実装) 入力ファイルのファイル名を返す。 |
-| getFormatFileName() | (必須実装) レコードフォーマット定義ファイルのファイル名を返す。 |
-| getDataFileDirName() | (任意実装) 入力ファイルが格納されたディレクトリの論理パス名を指定する。 デフォルトでは、論理パス名 **"input"** を使用する。 |
-| getFormatFileDirName() | (任意実装) フォーマット定義ファイルが格納されたディレクトリの論理パス名を指定する。 デフォルトでは、論理パス名 **"format"** を使用する。 |
-| getValidatorAction() | (任意実装) 入力ファイルの事前検証処理を実装したオブジェクト ( [ValidatableFileDataReader.FileValidatorAction](../../javadoc/nablarch/fw/reader/ValidatableFileDataReader.FileValidatorAction.html) )を返す。 デフォルトでは事前検証処理は行われない。 事前検証が必要な場合にオーバーライドすること。 |
-| transactionSuccess() | (任意実装) 業務トランザクションのコミットが完了した後でコールバックされる。 デフォルトでは何もしない。 |
-| transactionFailure() | (任意実装) 業務トランザクションのロールバック後にコールバックされる。 デフォルトでは何もしない。 |
-| initialize() | (任意実装) バッチ処理の開始前に一度だけ呼ばれる。 デフォルトでは何もしない。 |
-| error() | (任意実装) 実行時例外/エラーの発生によってバッチがエラー終了した場合に 一度だけコールバックされる。 デフォルトでは何もしない。 |
-| terminate() | (任意実装) バッチ処理が全件終了もしくはエラーにより終了した後で 一度だけコールバックされる。 デフォルトでは何もしない。 |
-
-### ハンドラ処理フロー
-
-**[コールバック]**
-
-**1. (バッチ処理開始前初期処理)**
-
-[マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) での処理開始時に本クラスの **initialize()** を実行する。
-
-**2. (ファイルデータリーダ生成)**
-
-続いて、 [マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) での処理開始時に、以下の手順に沿って作成されたデータリーダを返す。
-
-1. 本クラスの **getFormatFileName()** 、 **getFormatFileDirName()** 、 **getDataFileName()** 、 **getDataFileDirName()**
- をそれぞれ実行し、その結果をもとに [ファイルデータリーダ](../../component/readers/readers-FileDataReader.md) を作成する。
-2. 本クラスの **getValidatorAction()** を実行し、その結果がnullでなければ、
- [ValidatableFileDataReader](../../javadoc/nablarch/fw/reader/ValidatableFileDataReader.html) を作成し、 **getValidatorAction()** の結果と前段で作成したファイルリーダを設定する。
-
- 3. [ResumeDataReader](../../javadoc/nablarch/fw/reader/ResumeDataReader.html) を作成し、前段までで作成したデータリーダを設定する。
-
-**[往路処理]**
-
-**3. (入力レコードのレコード種別を取得)**
-
-入力レコードの getRecordType() メソッドを実行し、レコード種別名を取得する。
-
-**4. (業務処理の実行)**
-
-本クラスに実装された、以下のシグニチャのメソッドを呼び出し、その結果を取得する。
-
-```java
-public Result do[レコード種別名](DataRecord record, ExecutionContext context);
-```
-
-**[復路処理]**
-
-**5. (正常終了)**
-
-**4.** の結果をリターンし、終了する。
-
-**[例外処理]**
-
-**4a. (ディスパッチエラー)**
-
-本クラスに、該当するメソッドが定義されていなかった場合は、実行時例外( [Result.NotFound](../../javadoc/nablarch/fw/Result.NotFound.html) :ステータスコード404)
-を送出する。
-
-**4b. (エラー終了)**
-
-業務処理実行中に例外が送出された場合は、そのまま再送出する。
-
-**[コールバック]**
-
-**6. (業務トランザクション正常終了時の処理)**
-
-本ハンドラでの処理終了後、 [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) で業務トランザクションが正常にコミットされた場合、
-本ハンドラの **transactionSuccess()** を実行する。
-
-**6a. (業務トランザクションロールバック時の処理)**
-
-本ハンドラでの処理終了後、 [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) で業務トランザクションがロールバックされた場合、
-本ハンドラの **transactionFailure()** を実行する。
-
-**7. (バッチエラー終了時)**
-
-[マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) でバッチ処理実行用のサブスレッドがエラーにより停止した場合、
-本ハンドラの **error()** を実行する。
-
-**8. (バッチ終了時)**
-
-[マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) でバッチ処理実行用のサブスレッドが終了した場合、
-本ハンドラの **terminate()** を実行する。
-(このコールバックは、バッチがエラー終了した場合でも、 **7.** の処理の後で呼ばれる。)
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-FileRecordWriterDisposeHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-FileRecordWriterDisposeHandler.md
deleted file mode 100644
index 14e522e41..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-FileRecordWriterDisposeHandler.md
+++ /dev/null
@@ -1,69 +0,0 @@
-## 出力ファイル開放ハンドラ
-
-**クラス名:** `nablarch.common.handler.FileRecordWriterDisposeHandler`
-
------
-
------
-
------
-
-### 概要
-
-業務アクションハンドラで書き込みを行うために開いた全ての出力ファイルを開放(クローズ)するハンドラ。
-後続のハンドラの処理結果に関わらず全ての出力ファイルを解放する。
-本ハンドラを使用する場合、業務アクションハンドラ内で出力ファイルを開放する必要はない。
-
-> **Warning:**
-> 本ハンドラは、 [FileRecordWriterHolder](../../javadoc/nablarch/common/io/FileRecordWriterHolder.html) クラス経由で書き込みが行われた出力ファイルのみ開放する。
-
-> [FileRecordWriterHolder](../../javadoc/nablarch/common/io/FileRecordWriterHolder.html) 以外のクラスを使用して書き込んだ出力ファイルは、開放の対象外となるので注意すること。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| 出力ファイル開放ハンドラ | nablarch.common.handler.FileRecordWriterDisposeHandler | Object | Object | - | 業務アクションハンドラで書き込みを行うために開いた全ての出力ファイルを開放する | - |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラに対する処理委譲)**
-
-後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**2. (出力ファイルの開放)**
-
-[FileRecordWriterHolder](../../javadoc/nablarch/common/io/FileRecordWriterHolder.html) によって書き込みを行った全てのファイルの開放処理を行う。
-
-**2a. (開放処理中のエラー)**
-
-なお、開放処理中にIOエラーが発生した場合は、ワーニングログのみ出力し、再送出は行なわない。
-それ以外のエラーが発生した場合は再送出して終了する。
-
-**3. (正常終了)**
-
-**1.** で取得した処理結果を返却して終了する。
-
-**[例外処理]**
-
-**1a. (後続ハンドラの処理でエラー)**
-
-後続ハンドラの処理中にエラーが発生した場合、 **2. (出力ファイルの開放)** を行った後、
-発生した元例外を再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの実装内容は基本的に変更不要なものであり、そのまま使用することができる。
-以下はDIリポジトリ設定ファイルへの記述例である。
-
-```xml
-
-```
-
-### 未実装機能・要望
-
-(とくになし。)
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ForwardingHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ForwardingHandler.md
deleted file mode 100644
index 6bebfbf37..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ForwardingHandler.md
+++ /dev/null
@@ -1,104 +0,0 @@
-## 内部フォーワードハンドラ
-
-**クラス名:** `nablarch.fw.handler.ForwardingHandler`
-
------
-
------
-
-### 概要
-
-このハンドラでは、後続ハンドラでの処理結果のHTTPレスポンスオブジェクト中のコンテンツパスが、
-**forward://** で始まる書式であった場合に、指定されたリクエストパスで後続ハンドラの処理を再実行する。
-
-これは、 **内部フォーワード** と呼ばれる処理で、遷移先の画面が単純な画面表示では無く、
-業務アクションでの処理を伴う場合などに用いられる。
-
-なお、内部フォーワード後は [リクエストオブジェクト](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストの識別と業務処理の実行) 中のリクエストパスの値は
-フォーワード先のパスに書き換えられる。
-一方、スレッドコンテキスト中のリクエストIDの値はフォーワード後も同じ値である。
-
-フォーワード先のリクエストパスに対するリクエストIDは、同じスレッドコンテキスト中の
-[内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理) から参照できる。
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [開閉局制御ハンドラ](../../component/handlers/handlers-ServiceAvailabilityCheckHandler.md) 、 [認可制御ハンドラ](../../component/handlers/handlers-PermissionCheckHandler.md) | これらのハンドラが行う開閉局チェック、認可チェック処理は フォーワード後のリクエストIDで実施する必要があるので、 本ハンドラはこれらのハンドラの上位に配置する必要がある。 |
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| 内部フォーワードハンドラ | nablarch.fw.web.handler.ForwardingHandler | HttpRequest | HttpResponse | - | 遷移先に内部フォーワードパスが指定されていた場合、HTTPリクエストオブジェクトのリクエストURIを内部フォーワードパスに書き換えた後、後続のハンドラを再実行する。 | - |
-| 開閉局制御ハンドラ | nablarch.fw.common.handler.ServiceAvailabilityCheckHandler | Request | Result | リクエストID単位での開閉局制御を行う | - | - |
-| 認可制御ハンドラ | nablarch.fw.common.handler.PermissionCheckHandler | Object | Object | スレッドコンテキスト上の userId/requestId をもとに認可判定を行う。認可判定に失敗した場合は例外を送出して終了する。成功した場合は、認可情報オブジェクトをスレッドローカルに設定する。 | - | - |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (ハンドラキュー構成のスナップショットを作成)**
-
-このハンドラの処理開始時点でのハンドラキュー構成のシャローコピーを作成する。
-
-**2. (後続ハンドラの処理を実行)**
-
-ハンドラキュー上の後続ハンドラに処理を委譲し、その結果オブジェクトとなるHTTPレスポンスオブジェクトを取得する。
-
-**[復路処理]**
-
-**3. (コンテンツパスの取得)**
-
-HTTPレスポンスオブジェクトに設定されたコンテンツパス文字列を取得する。
-
-**3a. (正常終了)**
-
-コンテンツパス文字列が **forward://** で始まる文字列で無い場合、本ハンドラでは何もせずに、
-**2.** で取得した処理結果をリターンして終了する。
-
-**3b. (内部フォーワード処理)**
-
-コンテンツパス文字列が **forward://** で始まる場合、パス部分をフォーワード先パスとして取得する。
-
-**(書式)**
-
-**forward://(フォーワード先リクエストパス)**
-
-* 相対パス指定の場合: 現在のリクエストURIを起点とするパス。
-* 絶対パス指定の場合: サーブレットコンテキスト名を起点とするパス。
-
-```bash
-# 現在のリクエストURIが "/app/user/success.html" とすると、以下はどちらも等価な表現となる。
-forward://registerForm.html # 相対パス指定
-forward:///app/user/registerForm.html # 絶対パス指定
-```
-
-以下の処理を行う。
-
-1. フォーワード先リクエストパスを **HttpRequest** オブジェクトのリクエストパスに設定する。
-2. フォーワード先リクエストパスから取得したリクエストIDをスレッドコンテキスト上の [内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理)
- に設定する。
-3. 実行コンテキスト上のハンドラキューの内容を **1.** で作成したコピーに差し替えたうえで、
- 後続のハンドラに対して再度処理を委譲し、その処理結果となるHTTPレスポンスオブジェクトを取得する。
-4. 初回のレスポンスのステータスコードと、 **2.** で得られたレスポンスのステータスコードを比較し、
- 前者の方が大きい場合は、 **2.** で得られたレスポンスにその値を設定する。
-5. **2.** で得られたレスポンスをリターンするして終了する。
-
-**[例外処理]**
-
-**2a. (後続ハンドラ処理中のエラー)**
-
-後続ハンドラ処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラに設定項目はなく、そのまま使用することができる。
-
-```xml
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-GlobalErrorHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-GlobalErrorHandler.md
deleted file mode 100644
index b423ce374..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-GlobalErrorHandler.md
+++ /dev/null
@@ -1,69 +0,0 @@
-## グローバルエラーハンドラ
-
-**クラス名:** `nablarch.fw.handler.GlobalErrorHandler`
-
------
-
------
-
-### 概要
-
-[グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) は、ハンドラキュー上のどのハンドラでも捕捉されなかった
-全ての実行時例外・エラーを捕捉し、運用ログを含むログ出力を行なう。
-
-このハンドラでは、致命的な一部の例外を除いて、捕捉した例外を
-処理結果オブジェクト([Result](../../javadoc/nablarch/fw/Result.html) )に変換して返す。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| グローバルエラーハンドラ | nablarch.fw.handler.GlobalErrorHandler | Object | Result | - | - | 全ての実行時例外・エラーを捕捉し、ログ出力を行う |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラへの処理委譲)**
-
-往路では何もせずに後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**2. (正常終了)**
-
-**1.** で取得した結果をそのままリターンし終了する。
-
-**[例外処理]**
-
-**2a. (例外制御)**
-
-後続ハンドラの処理中に実行時例外もしくはエラーが送出された場合は以下の表に従い例外処理を行う。
-基本的には発生したエラーをログに出力し、エラーの内容を格納した [Result](../../javadoc/nablarch/fw/Result.html) オブジェクトをリターンする。
-ただし、プロセスの継続に影響するような致命的なエラーが発生した場合のみ例外を再送出する。
-
-| 捕捉した例外クラス | 障害ログ出力 [1] | ログレベル | 処理結果 | 備考 |
-|---|---|---|---|---|
-| java.lang.ThreadDeath | なし | Info | 捕捉した例外 を再送出 | 外部からスレッド停止APIが呼ばれた場合に発生する。 通常運用で発生しうるため、Infoレベルのログを出力し、 再送出する。 |
-| java.lang.InternalError | なし | Fatal | 捕捉した例外 を再送出 | VMの内部動作に起因するエラーが発生した場合に送出される。 |
-| java.lang.UnknownError | なし | Fatal | 捕捉した例外 を再送出 | |
-| java.lang.StackOverflowError | なし | Fatal | Result. InternalError を返す。 | アプリケーションロジックの問題(無限ループ等)である 可能性が高いのでFatalログを出力し、再送出はしない。 |
-| java.lang.OutOfMemoryError | なし | Fatal | Result. InternalError を返す。 | リソースを浪費しているリクエストスレッドが終了することで 復旧する可能性があるため、Fatalログを出力し再送出はしない。 なお、ログ出力の際には失敗する可能性があるので、 ログ出力前に標準エラー出力に最小限のメッセージを出力する。 |
-| java.lang.VirtualMachineError (OutOfMemoryError /StackOverFlowErrorを除く) | なし | Fatal | 捕捉した例外 を再送出 | |
-| nablarch.fw.launcher.ProcessAbnormalEnd | あり | Fatal | 捕捉した例外 を再送出 | 駐起動バッチ等で、アプリケーション側からプロセス停止を 要求する場合に送出される。 |
-| nablarch.fw.Result.ServiceError | あり | Fatal/Warn | 捕捉した例外 を返す。 | アプリケーション側から障害ログの出力が要求された場合に 送出される。 |
-| nablarch.fw.Result.Error | なし | Fatal | 捕捉した例外 を返す。 | |
-| (上記以外の実行時例外/エラー) | なし | Fatal | Result. InternalError を返す。 | |
-
-運用ログに障害内容とメッセージを出力する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの実装内容は基本的に変更不要なものであり、そのまま使用することができる。
-以下は設定ファイルの記述例である。
-
-```xml
-
-```
-
-プロジェクト固有の要件により、例外処理を変更したい場合は、本ハンドラ自体を別実装したものに差し替えること。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpAccessLogHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpAccessLogHandler.md
deleted file mode 100644
index 4a83da012..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpAccessLogHandler.md
+++ /dev/null
@@ -1,82 +0,0 @@
-## HTTPアクセスログハンドラ
-
-**クラス名:** `nablarch.fw.web.handler.HttpAccessLogHandler`
-
------
-
------
-
-### 概要
-
-このハンドラでは、往路と復路で、それぞれリクエストとレスポンスに関するHTTPアクセスログを出力する。
-
-出力されるアクセスログの詳細や、出力形式の設定については、 [HTTPアクセスログの出力](../../component/libraries/libraries-04-HttpAccessLog.md) を参照すること。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| スレッドコンテキスト変数設定ハンドラ(リクエストスレッド) | nablarch.common.handler.ThreadContextHandler_request | Object | Object | 前のループで設定されたスレッドコンテキスト変数をクリアするためここで再初期化する。 | - | - |
-| HTTPアクセスログハンドラ | nablarch.fw.web.handler.HttpAccessLogHandler | HttpRequest | HttpResponse | HTTPリクエストの内容についてログに出力する。 | 送信するHTTPレスポンスの内容についてログに出力する。 | 送信するHTTPレスポンスの内容についてログに出力する。 |
-| HTTPエラー制御ハンドラ | nablarch.fw.web.handler.HttpErrorHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容が設定されていない場合は、ステータスコードに応じたデフォルトページを遷移先に設定する。 | 送出されたエラーに応じた遷移先のHTTPレスポンスオブジェクトを返却する。送出されたエラーはリクエストスコープに設定される。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | 本ハンドラがログに出力する項目には、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) が設定する項目が含まれるため、 本ハンドラより上位に配置する必要がある。 |
-| [HTTPエラー制御ハンドラ](../../component/handlers/handlers-HttpErrorHandler.md) | HTTPエラーレスポンス以外の例外は [HTTPエラー制御ハンドラ](../../component/handlers/handlers-HttpErrorHandler.md) によって HTTPレスポンスオブジェクトに変換されるので 本ハンドラの後続に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路での処理]**
-
-**1. (HTTPリクエストログの出力)**
-
-引数となるHTTPリクエストオブジェクトおよび実行コンテキストの内容をもとに、HTTPアクセスログを出力する。
-**(ログレベル: INFO、 ログカテゴリ: HTTP_ACCESS)**
-
-**2. (後続ハンドラへの処理委譲)**
-
-後続ハンドラに処理を委譲し、その結果としてHTTPレスポンスオブジェクトを取得する。
-
-**[復路での処理]**
-
-**3. (HTTPレスポンスログの出力)**
-
-HTTPリクエストオブジェクトおよび実行コンテキストに加え、後続ハンドラの処理結果であるHTTPレスポンスオブジェクトの内容をもとに、
-HTTPアクセスログを出力する。
-**(ログレベル: INFO、 ログカテゴリ: HTTP_ACCESS)**
-
-**4. (正常終了)**
-
-HTTPレスポンスオブジェクトをリターンして終了する。
-
-**[例外処理]**
-
-**2a. (HTTPエラーレスポンスに対するログ出力)**
-
-後続ハンドラの処理中に、HTTPエラーレスポンスが送出された場合、そのエラーレスポンスの内容と、
-HTTPリクエスト、実行コンテキストの内容をもとにHTTPアクセスログを出力した上で、捕捉した例外を再送出する。
-
-**2b. (HTTPエラーレスポンス以外のエラーに対するログ出力)**
-
-後続ハンドラの処理中に、HTTPエラーレスポンス以外の例外が送出された場合は
-HTTPリクエスト、実行コンテキストの内容をもとにHTTPアクセスログを出力した上で、例外を再送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラ自体に設定項目は存在しない。
-ロガー側の設定については、 [HTTPアクセスログの出力](../../component/libraries/libraries-04-HttpAccessLog.md) を参照すること。
-
-**標準設定**
-
-以下はDI設定の記述例である。
-
-```xml
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpCharacterEncodingHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpCharacterEncodingHandler.md
deleted file mode 100644
index d26c89b80..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpCharacterEncodingHandler.md
+++ /dev/null
@@ -1,122 +0,0 @@
-## HTTP文字エンコード制御ハンドラ
-
-**クラス名:** `nablarch.fw.web.handler.HttpCharacterEncodingHandler`
-
------
-
------
-
-### 概要
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTP文字エンコード制御ハンドラ | nablarch.fw.web.handler.HttpCharacterEncodingHandler | Object | Object | HttpServletRequestおよびHttpServletResponseに対し文字エンコーディングを設定する。 | - | - |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (既定の文字エンコーディングの設定)**
-
-`HttpServletRequest` および `HttpServletResponse` に対し既定の文字エンコーディングを設定する。
-
-**2. (後続ハンドラに対する処理委譲)**
-
-ハンドラキュー上の後続ハンドラに対して処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**3. (正常終了)**
-
-**2.** の結果をリターンして終了する。
-
-**[例外処理]**
-
-**2a. (エラー終了)**
-
-後続ハンドラの処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 既定の文字エンコーディング | defaultEncoding | String | 任意指定(デフォルト値="UTF-8") |
-
-**標準設定**
-
-以下は標準設定におけるDI設定の例である。
-
-```xml
-
-```
-
-**任意の設定項目も含めた例**
-
-```xml
-
-
-
-
-```
-
-**拡張例**
-
-リクエスト毎に動的に使用する文字エンコーディングが変わる場合は本ハンドラを継承したハンドラを作成し、本ハンドラの代わりに設定する。
-継承時に拡張可能なメソッドを以下に示す。
-
-| 拡張可能なメソッド | 引数 | 戻り値 | 処理内容 |
-|---|---|---|---|
-| resolveRequestEncoding | HttpServletRequest | Charset | HTTP リクエストに設定する文字エンコードを返却する。 |
-| resolveResponseEncoding | HttpServletRequest | Charset | HTTP レスポンスに設定する文字エンコードを返却する。 |
-
-以下はリクエスト URI 毎に文字エンコーディングを変更する例である。
-
-*拡張ハンドラの実装例*
-
-```java
-public class CustomHttpCharacterEncodingHandler extends
- HttpCharacterEncodingHandler {
-
- @Override
- protected Charset resolveRequestEncoding(HttpServletRequest req) {
- return resolveCharacterEncoding(req);
- }
-
- @Override
- protected Charset resolveResponseEncoding(HttpServletRequest req) {
- return resolveCharacterEncoding(req);
- }
-
- /**
- * 文字エンコードを解決する。
- *
- * URI に "/RW99ZZ06" が含まれていた場合は文字エンコーディングを "Windows-31J" とする。
- * それ以外の場合はデフォルトの文字エンコードとする。
- *
- *
- * @param req リクエスト
- * @return 文字エンコード
- */
- private Charset resolveCharacterEncoding(HttpServletRequest req) {
- if (req.getRequestURI().contains("/RW99ZZ06")) {
- return Charset.forName("Windows-31J");
- }
- return getDefaultEncoding();
- }
-
-}
-```
-
-*DIの設定例*
-
-```xml
-
-```
-
-> **Warning:**
-> `resolveRequestEncoding`, `resolveResponseEncoding` の引数として `HttpServletRequest` が渡されるが、
-> `HttpServletRequest` からリクエストパラメータを取得してはならない。
-> 文字エンコードを設定する前に``HttpServletRequest`` からリクエストパラメータを取得してしまった場合は
-> 文字エンコードの設定ができないので文字化けの原因となる。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpErrorHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpErrorHandler.md
deleted file mode 100644
index 0f4ef152d..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpErrorHandler.md
+++ /dev/null
@@ -1,137 +0,0 @@
-## HTTPエラー制御ハンドラ
-
-**クラス名:** `nablarch.fw.handler.HttpErrorHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラでは、後続ハンドラの処理中に送出された例外を捕捉し、
-障害ログを出力した後、HTTPエラーレスポンスオブジェクトを作成して返す。
-
-また、後続ハンドラの処理が正常終了し、その処理結果に遷移先画面か応答内容のどちらもも設定されていない場合は、
-既定のエラー画面を遷移先として指定する。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 |
-| HTTPエラー制御ハンドラ | nablarch.fw.web.handler.HttpErrorHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容が設定されていない場合は、ステータスコードに応じたデフォルトページを遷移先に設定する。 | 送出されたエラーに応じた遷移先のHTTPレスポンスオブジェクトを返却する。送出されたエラーはリクエストスコープに設定される。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) | 本ハンドラでは捕捉した例外に対するHTTPレスポンスオブジェクトを作成するものの、 レスポンス処理自体は [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) 側で行われるため、 このハンドラを本ハンドラの上位に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラへの処理委譲)**
-
-往路では本ハンドラは特段の処理を行なわない。
-引数をそのまま後続ハンドラに渡して処理を委譲し、その結果としてHTTPレスポンスオブジェクトを取得する。
-
-**[復路処理]**
-
-**2. (レスポンスボディ内容の確認)**
-
-HTTPレスポンスオブジェクトにレスポンスボディとして出力する内容が設定されているかどうかを確認する。
-以下の条件のいずれかが満たされていれば、 HTTPレスポンスオブジェクトを返却し、処理を終了する。
-
-1. コンテンツパスが設定されている。
-2. `HttpResponse#setInputStream()` により、レスポンスボディとして出力する内容が `InputStream` で与えられている。
-3. `HttpResponse#write()` により、レスポンスボディとして出力する内容がHTTPレスポンスオブジェクト内にバッファリングされている。
-
-**2a. (ステータスコード毎のデフォルトページを設定)**
-
-HTTPレスポンスオブジェクトにレスポンスボディとして出力する内容が設定されていなかった場合は、
-`HttpResponse#getStatusCode()` の値に合致するデフォルトページへのコンテンツパスを設定してリターンする。
-デフォルトページは本ハンドラの設定で任意のコンテンツパスを指定することができる。
-設定を行なっていない場合のデフォルトページは次のようになる。
-
-| ステータスコード | コンテンツパス |
-|---|---|
-| 404 | servlet:///jsp/notFound.jsp |
-| 401 | servlet:///jsp/unauthorized.jsp |
-| 3.. (300~399のいずれか) | servlet:///jsp/redirecting.jsp |
-| 4.. (400~499 ただし 401/404を除く) | servlet:///jsp/userError.jsp |
-| 5.. (500~599のいずれか) | servlet:///jsp/systemError.jsp |
-
-**[例外処理]**
-
-**1.a (後続ハンドラ処理中のエラー)**
-
-後続ハンドラ実行中に例外が送出された場合、その型に従って以下のように処理する。
-なお、いずれの場合でも、送出された例外をリクエストコンテキストにキー名 **nablarch_error** で設定する。
-
-| 捕捉した例外クラス | ログ出力 | 処理内容 |
-|---|---|---|
-| nablarch.fw.NoMoreHandlerException | Info | ハンドラキューが空の状態で、後続ハンドラに処理委譲を行なった場合に送出される。 ステータスコード404のデフォルトページを設定したHTTPレスポンスオブジェクトを返却する。 |
-| nablarch.fw.web.HttpErrorResponse | なし | エラーレスポンス内容を指定し、エラー終了する際に送出するエラー。 この例外に指定されているHTTPレスポンスオブジェクトを返却する。 |
-| nablarch.fw.Result.Error | なし | 例外オブジェクトのステータスコードに対応するデフォルトページを遷移先とする HTTPレスポンスオブジェクトを返却する。 > **Note:** > writeFailureLogPatternプロパティで指定された正規表現にマッチするステータスコードを > もつErrorオブジェクトの場合には、障害ログを出力する。 |
-| java.lang.StackOverflowError | Fatal | ステータスコード500のデフォルトページを設定したHTTPレスポンスオブジェクトを返却する。 |
-| java.lang.ThreadDeath | なし | 本ハンドラでは何もせずに捕捉した例外を再送出する。 (ログ出力は [グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) で行われる。) |
-| java.lang.VirtualMachineError (StackOverFlowErrorを除く) | なし | 本ハンドラでは何もせずに捕捉した例外を再送出する。 (ログ出力は [グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) で行われる。) |
-| (上記以外の実行時例外、エラー) | Fatal | ステータスコード500のデフォルトページを設定したHTTPレスポンスオブジェクトを返却する。 |
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| ステータスコード毎のデフォルト遷移先 | defaultPages | Map | 任意指定 (デフォルト設定はハンドラ処理フロー参照) |
-| Result.Error発生時の障害通知ログ出力対象のステータスコード | writeFailureLogPattern | String | 任意指定 指定する場合は、正規表現で指定する。 例えば、全てのステータスコードで障害通知ログを 出力する場合には、 *「.*」* と指定する。 設定を省略した場合は、500~599(503(サービス閉塞中) を除く)が、障害通知ログの出力対象となる。 |
-
-**標準設定**
-
-以下は標準設定におけるDI設定の例である。
-
-```xml
-
-
-```
-
-**ステータスコード毎のデフォルト遷移先を設定する場合**
-
-以下のように設定することで、デフォルトの遷移先を変更することができる。
-対象となるステータスコードに **"."** を含めることで、ワイルドカード指定することができる。
-ただし、1つのステータスコードに対して複数の遷移先がマッチする場合は、
-ワイルドカードの使用桁がより少ない遷移先を優先する。
-
-たとえば、以下の例では、ステータスコード404に対応するデフォルト遷移先は、
-`"/USER_ERROR.jsp"` ではなく、 `"/NOT_FOUND.jsp"` となる。
-
-```xml
-
-
-
-
-
-
-
-```
-
-**Result.Error発生時に障害通知ログを出力するステータスコード値を変更する場合**
-
-以下のように設定することで、障害通知ログを出力するステータスコード値を変更することができる。
-
-```xml
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpMethodBinding.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpMethodBinding.md
deleted file mode 100644
index e6232161b..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpMethodBinding.md
+++ /dev/null
@@ -1,448 +0,0 @@
-## 画面オンライン処理用業務アクションハンドラ
-
-**クラス名:** `nablarch.fw.web.HttpMethodBinding`
-
------
-
-### 概要
-
-本稿では、 [画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) における、標準的な業務アクションハンドラの実装方法について述べる。
-
-また、必要に応じて、以下の各項を参照すること。
-
-**レスポンス時にファイル等のダウンロードを行う場合**
-
-* [ファイルダウンロード](../../component/libraries/libraries-05-FileDownload.md)
-
-**ファイルアップロードを伴う業務処理を実装する場合**
-
-* [ファイルアップロード業務処理用ユーティリティ](../../component/libraries/libraries-file-upload-utility.md)
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 | - |
-| HTTPエラー制御ハンドラ | nablarch.fw.web.handler.HttpErrorHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容が設定されていない場合は、ステータスコードに応じたデフォルトページを遷移先に設定する。 | 送出されたエラーに応じた遷移先のHTTPレスポンスオブジェクトを返却する。送出されたエラーはリクエストスコープに設定される。 | - |
-| トランザクション制御ハンドラ | nablarch.fw.common.handler.TransactionManagementHandler | Object | Object | 業務トランザクションの開始 | トランザクションをコミットする。 | トランザクションをロールバックする。 | 1.コミット完了後 / 2.ロールバック後 |
-| 画面オンライン処理業務アクション | nablarch.fw.action.HttpMethodBinding | HttpRequest | HttpResponse | HTTPリクエストの内容をもとに業務処理を実行する | 遷移先画面に表示する内容をリクエストコンテキストに設定した上で、遷移先パスを設定したHTTPレスポンスオブジェクトを返却する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) | 業務アクションが返却もしくは送出したHTTPレスポンスオブジェクトをもとに レスポンス処理を行う。 |
-| [HTTPエラー制御ハンドラ](../../component/handlers/handlers-HttpErrorHandler.md) | 業務アクションが送出した実行時例外は、ここで捕捉され、 対応するエラー遷移先を表すHTTPレスポンスオブジェクトに変換される。 |
-| [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) | 業務アクションが実行時例外を送出することで、業務トランザクションをロールバックする。 |
-
-### 業務アクションハンドラの実装内容
-
-次のコードは、ログイン処理を行う業務アクションハンドラの例である。
-以下では、このソースコードに沿って解説する。
-
-```java
-public class LoginAction {
-
- // ① ビジネスメソッドのディスパッチ
- public HttpResponse getLoginHtml(HttpRequest request, ExecutionContext context) {
- // ② ビジネスロジックの実行とHTTPレスポンスオブジェクトの返却
- context.invalidateSession();
- return new HttpResponse("./login.jsp");
- }
-
- public HttpResponse doLogin(HttpRequest request, ExecutionContext context) {
- try {
- authenticate(request, context);
- return new HttpResponse("forward:///app/MainMenu");
-
- // ③ 例外制御
- } catch(AuthenticationFailedException e) {
- throw new HttpErrorResponse(403, "forward://login.html", e);
- }
- }
-}
-```
-
-**① ビジネスメソッドのディスパッチ**
-
-[画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) の業務アクションハンドラでは
-[Handler](../../javadoc/nablarch/fw/Handler.html) インターフェースを実装する必要は無く、HTTPリクエストの内容に従い、動的にメソッドが呼び分けられる。
-
-1. メソッドの戻り値の型がHttpResponseかつ、引数を2つもち、
- それぞれの型がHttpRequest、ExecutionContextであること。
-2. メソッドの名前が次の文字列に一致する。:
-
- ```
- (リクエストのHTTPメソッド名 もしくは "do") + (リクエストURIのリソース名)
- ```
-
-ただし、一致判定は以下の条件のもとで行われる。
-
-* メソッド名の大文字小文字は区別しない。
-* リクエストURIのリソース名に含まれる"."は無視される。
-* 委譲先クラスのメソッド名に含まれる"_"は無視される。
-
-**例**
-
-| HTTPリクエスト | 委譲対象となるメソッドシグニチャの例 |
-|---|---|
-| GET /app/index.html | HttpResponse getIndexHtml (HttpRequest, ExecutionContext); HttpResponse getIndexhtml (HttpRequest, ExecutionContext); HttpResponse get_index_html(HttpRequest, ExecutionContext); HttpResponse do_index_html (HttpRequest, ExecutionContext); HttpResponse doIndexHtml (HttpRequest, ExecutionContext); |
-| POST /app/message | HttpResponse postMessage(HttpRequest, ExecutionContext); HttpResponse doMessage (HttpRequest, ExecutionContext); HttpResponse do_message (HttpRequest, ExecutionContext); |
-
-これらの条件に該当するメソッドが存在しなかった場合は
-ステータスコード404の [HttpErrorResponse](../../javadoc/nablarch/fw/web/HttpErrorResponse.html) が送出される。
-
-**② ビジネスロジックの実行とHTTPレスポンスオブジェクトの返却**
-
-呼び出された各メソッドでは、おおまかに以下のような処理を行う。
-
-1. ビジネスロジックを実行する。
-2. JSP側などの後続処理で参照する情報を、各種スコープに設定する。
-3. 遷移先を指定するコンテンツパスが設定された [HttpResponse](../../javadoc/nablarch/fw/web/HttpResponse.html) オブジェクトを返却。
-
-クライアントに送信するレスポンスボディの内容を指定する方法は大きく2つある。
-
-1つめは、 [HttpResponse](../../javadoc/nablarch/fw/web/HttpResponse.html) オブジェクトに直接レスポンスボディの内容を設定する方法であり、
-主に [ファイルダウンロード](../../component/libraries/libraries-05-FileDownload.md) 処理で使用する。
-
-もう1つは、 [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) と呼ばれる文字列によってレスポンス内容を指定する方法であり、
-通常の業務機能の実装ではこちらを主に使用する。
-
-**コンテンツパス**
-
-コンテンツパスとは、クライアントにレスポンスする内容を指定するために、 [HttpResponse](../../javadoc/nablarch/fw/web/HttpResponse.html) オブジェクトに設定する文字列であり、
-以下のリソースをレスポンスの対象とすることができる。
-
-* サーブレットフォーワードパス
-* 内部フォーワードパス
-* HTTPリダイレクション
-* ファイルシステム上のリソース
-* Javaクラスパス上のリソース
-
-**コンテンツパスの書式**
-
-**1. サーブレットフォーワード**
-
-指定されたパスに対するサーブレットフォーワードを行う。
-クライアントに対するレスポンス処理はフォーワード先のサーブレットで行われる。
-主に、業務処理実行後のJSP画面の表示の際に使用する。
-
-**(書式)**
-
-**servlet://(フォーワードパス)**
-
-* 相対パス指定の場合: 現在のリクエストURIを起点とするパス。
-* 絶対パス指定の場合: サーブレットコンテキストを起点とするパス。
-
-```bash
-servlet://index.jsp # 相対パス指定
-servlet:///appContext/jsp/index.jsp # 絶対パス指定
-```
-
-> **Note:**
-> サーブレットフォーワードでは、指定されたサーブレットを実行するのみであり、ハンドラキュー上の処理は再実行しない。
-> これは、 [Webフロントコントローラ (サーブレットフィルタ)](../../component/handlers/handlers-WebFrontController.md) が全リクエストを対象としたサーブレットフィルタとして実装されており、
-> サーブレットフォーワードで再度処理した場合、無限ループしてしまうためである。
-
-> ハンドラキューの内容も含めたフォワード処理が必要な場合は、 [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) による
-> 内部フォーワードを使用すること。
-
-**2. 内部フォーワード**
-
-指定されたリクエストパスを使用して、ハンドラキューの処理を再実行する。
-遷移先の画面が単純な画面表示では無く、業務アクションでの処理を伴う場合などに用いられる。
-
-**(書式)**
-
-**forward://(フォーワード先リクエストパス)**
-
-* 相対パス指定の場合: 現在のリクエストURIを起点とするパス。
-* 絶対パス指定の場合: サーブレットコンテキスト名を起点とするパス。
-
-```bash
-# 現在のリクエストURIが "/app/user/success.html" とすると、以下はどちらも等価な表現となる。
-forward://registerForm.html # 相対パス指定
-forward:///app/user/registerForm.html # 絶対パス指定
-```
-
-> **Note:**
-> 内部フォーワード処理の詳細は [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) を参照すること。
-
-**3. HTTPリダイレクション**
-
-クライアントに対して指定されたパスへのリダイレクションを指示するレスポンスを行う。
-
-スキーム名を **redirect://** とした場合はサーブレットコンテキスト配下に対するリダイレクションを行う。
-特に、絶対パス指定はサーブレットコンテキストルートからの相対パスとみなされる。
-
-スキーム名を **http://** とした場合は、サーブレットコンテキスト外へのリダイレクションが可能であり、
-ホスト名を含めた完全なURLを指定することができる。
-
-**(書式)**
-
-**redirect://(リダイレクト先パス)**
-
-**http(s)://(リダイレクト先URL)**
-
-```bash
-redirect://login # 現在のページからの相対パス
-redirect:///UserAction/login # サーブレットコンテキストを起点とする相対パス
-http://www.example.com/login # 外部サイトのURL
-```
-
-**4. ファイルシステム上のリソース**
-
-ファイルシステム上の静的ファイルの内容を出力する。
-
-**(書式)**
-
-**file://(ファイルシステムパス)**
-
-* 相対パス指定の場合: JVMプロセスのワーキングディレクトリが起点とするパス。
-* 絶対パス指定の場合: ファイルシステムのルートディレクトリが起点とするパス。
-
-```bash
-file://webapps/style/common.css #相対パス指定
-file:///www/docroot/style/common.css #絶対パス指定
-```
-
-**5. Javaコンテキストクラスローダ上のリソース**
-
-コンテキストクラスローダ上のリソースの内容を出力する。
-
-**(書式)**
-
-**classpath://(Javaリソース名)**
-
-Javaリソース名の完全修飾名を"/"区切りで指定する。
-相対パスと絶対パスの区別は無くどちらを使用しても同じ結果となる。
-
-```bash
-# 以下はどちらも等価な表現となる。
-classpath://nablarch/sample/webapp/common.css
-classpath:///nablarch/sample/webapp/common.css
-```
-
-**③ 例外制御**
-
-先に述べたように、HttpErrorResponse 以外の実行時例外が送出された場合、
-デフォルトではHTTPステータス500のレスポンスが返る。
-
-それ以外の応答を行うためには、リクエストハンドラ内で明示的に例外を捕捉したうえで
-HttpResposeオブジェクトを生成して正常終了させるか、もしくは
-HttpErrorResponseでラップして再送出する必要がある。
-
-以下の例では、ユーザ入力値の不正による業務例外(ApplicationException)が発生した場合に
-HttpErrorResponseを送出し入力画面へ内部フォーワードしている。
-
-```java
-public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
- try {
- UserForm form = validateUser(req);
- registerUser(form);
- return new HttpResponse(200, "servlet://registrationCompleted.jsp");
-
- } catch(ApplicationException ae) {
- throw new HttpErrorResponse(400, "forward://registerForm.html", ae);
- }
-}
-```
-
-この例外制御は本フレームワークが提供する [@OnError](../../javadoc/nablarch/fw/web/interceptor/OnError.html) アノテーション
-を使用することで次のように簡略化することができる。
-
-```java
-@OnError(
- type = ApplicationException.class
- , path ="forward://registerForm.html"
-)
-public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
- UserForm form = validateUser(req);
- registerUser(form);
- return new HttpResponse(200, "servlet://registrationCompleted.jsp");
-}
-```
-
-さらに、複数の [@OnError](../../javadoc/nablarch/fw/web/interceptor/OnError.html) アノテーションを指定したい場合は、本フレームワークが提供する
-[@OnErrors](../../javadoc/nablarch/fw/web/interceptor/OnErrors.html) アノテーションを使用することで次のように簡略化することができる。
-
-```java
-// 複数のOnErrorは配列で指定するため、"{}"の記述が必要となる。
-@OnErrors({
- @OnError(type = OptimisticLockException.class, path ="forward://searchForm.html"),
- @OnError(type = ApplicationException.class, path ="forward://updatingForm.html")
-})
-public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
- UserForm form = validateUser(req);
- updateUser(form);
- return new HttpResponse(200, "servlet://updatingCompleted.jsp");
-}
-```
-
-[@OnErrors](../../javadoc/nablarch/fw/web/interceptor/OnErrors.html) アノテーションは、 [@OnError](../../javadoc/nablarch/fw/web/interceptor/OnError.html) アノテーションの定義順(上から順)に例外を処理する。
-たとえば、上記の例では、OptimisticLockExceptionはApplicationExceptionのサブクラスなので、
-必ずApplicationExceptionの上に定義しなければ正常に処理が行われない。
-
-```java
-// 【誤った実装例】
-// 下記の定義順では、OptimisticLockExceptionが送出された場合にも
-// ApplicationExceptionに対する例外処理が行われる。
-@OnErrors ({
- @OnError (type = ApplicationException.class, path ="servlet://updatingForm.jsp"),
- @OnError (type = OptimisticLockException.class, path ="servlet://searchForm.jsp")
-})
-```
-
-**インターセプタの実行順**
-
-インターセプタの実行順は、設定ファイルに定義した順となる。
-設定ファイルには、 `list` コンポーネントとしてアノテーションのFQCNを実行順に定義する。
-`list` コンポーネントの名前は、 `interceptorsOrder` として定義する。
-
-以下の例では、`OnDoubleSubmission` -> `OnErrors` -> `OnError` の順にインターセプタが実行される。
-ハンドラメソッドに `OnDoubleSubmission` と `OnError` が定義されている場合は、 `OnDoubleSubmission` -> `OnError` の順にインターセプタが実行される。
-
-```xml
-
- nablarch.common.web.token.OnDoubleSubmission
- nablarch.fw.web.interceptor.OnErrors
- nablarch.fw.web.interceptor.OnError
-
-```
-
-設定ファイルに未定義のインターセプタが利用された場合には、実行時例外を送出する。
-
-設定ファイル上にインターセプタの実行順を示す `list` コンポーネントが定義されていない場合は、
-`Method#getDeclaredAnnotations` が返すリストの逆順でインターセプタを実行する。
-`Method#getDeclaredAnnotations` が返すアノテーションリストの順序は保証されていなため、
-実行環境(jvmのバージョンなど)によって、インターセプタの実行順が変わる可能性がある点に注意すること。
-
------
-
-### 画面オンライン処理における変数スコープの利用
-
-画面オンライン処理方式では、リクエストスコープ、セッションスコープに加えて、
-各画面内に自動的に出力されるhidden項目によって実装される *ウィンドウスコープ* が定義されている。
-
-ウィンドウスコープにはウィンドウやタブごとに個別の変数を保持することができる。
-ここに業務データを保持することで、ウィンドウ毎に個別の状態を維持することができ、
-複数ウィンドウから並行操作を行っても、矛盾なく業務処理を遂行することが可能となる。
-
-各変数スコープの用途と使用方法について解説する。
-次の表と模式図は、画面オンライン処理方式における各スコープの特徴と用途をまとめたものである。
-
-| スコープ名称 | 用途 | 作成単位 | 維持期間 |
-|---|---|---|---|
-| リクエストスコープ | 単一のHTTPリクエスト内でのみ使用するデータ (=画面間で共有する必要の無いデータ)を保持する。 | HTTPリクエストごと | HTTPリクエストの開始から終了まで。 |
-| ウィンドウスコープ | 画面間で共有するデータのうち、 ウィンドウ間で共有する必要の無いデータを保持する。 | ブラウザのウィンドウ、 タブ、フレームごと | ウィンドウを開いてから閉じるまで。 もしくはセッションスコープが終了するまで。 |
-| セッションスコープ | 画面間で共有するデータのうち、 ウィンドウ間で共有する必要の有るデータを保持する。 | ユーザのログインごと | ユーザログインからログアウトまで。 もしくはセッションタイムアウトまで |
-
-
-
-以下では画面オンライン処理方式における各スコープの詳細について述べる。
-
------
-
-**リクエストスコープ**
-
-3つの変数スコープのうちで最も維持期間が短い。
-各HTTPリクエストごとに作成され、レスポンス処理が完了するまで維持される。
-単一のリクエスト間で完結し、次画面以降に引き継ぐ必要の無いデータはここに保存する。
-
-画面オンライン処理方式におけるリクエストスコープは基本的にServletAPIの
-HTTPServletRequest#getAttribute()/setAttribute()メソッドのラッパーである。
-
-**リクエストスコープに保持するデータ**
-
-* 画面に表示するデータオブジェクト(次画面以降に引き継がないもの)
-* バリデーションエラー等のメッセージ
-* JSP側で表示用に使用するフラグ
-
------
-
-**ウィンドウスコープ**
-
-ウィンドウスコープは、ブラウザのウィンドウ、タブ、フレームごとに作成される。
-(以降この節では、これらをまとめて単に"ウィンドウ"と表現する。)
-ウィンドウスコープは、各ウィンドウが閉じられるか、セッションが終了するまで維持される。
-
-例えば、ログインユーザIDや、ショッピングカート内の商品一覧などの
-ウィンドウ間で同一の値を共有しなければならない一部のデータを除けば、
-画面遷移を跨って使用する必要があるデータは、全てウィンドウスコープ上に保持する。
-
-これにより、アプリケーション側で特段の考慮をしなくとも
-複数のウィンドウを用いた並行操作や、ブラウザのヒストリバックによる遷移が可能となる。
-
-**ウィンドウスコープに保持するデータ**
-
-* 画面の入力項目(入力項目復帰が必要なもの)
-* 他業務画面からの引き継ぎデータ
-* 画面遷移履歴情報
-* 楽観ロック用バージョン番号 [1]
-
-**使用方法**
-
-ウィンドウスコープ変数は hidden属性のinputタグとして各ウィンドウの画面内に維持される。
-従って、ウィンドウスコープ上の変数は通常のリクエストパラメータと同等に扱われる。
-ウィンドウスコープ変数を含めたリクエストパラメータにアクセスするには
-[入力値のバリデーション](../../component/libraries/libraries-core-library-validation.md#入力値のバリデーション) 機能のAPIを使用する。
-
-リクエストパラメータはフレームワークによって自動的にhiddenタグとして画面に出力される。
-従って、ウィンドウスコープに変数を追加するには、HttpRequestクラスに定義されているsetParam()メソッドを使用する。
-
-```java
-public class HttpRequest extends Request {
- /**
- * リクエストパラメータを設定する。
- */
- @Published
- public HttpRequest setParam(String name, String... params);
-}
-```
-
-**セキュリティ上の考慮**
-
-フレームワークが出力したhiddenタグの値はフレームワークによって
-リクエストURIおよびname属性のハッシュ値とともに暗号化される。
-暗号化処理に使用する共通鍵はユーザログイン時に作成しメモリ上に保持される。
-この鍵はログアウトもしくはセッションタイムアウトの時点で廃棄されるので、
-極めて安全性が高い。
-
-あるデータに対する複数ユーザからの変更に対して、
-複数のリクエスト(画面)を跨いだトランザクションを実装する場合に使用する制御情報のこと。
-
------
-
-**セッションスコープ**
-
-ログインユーザごとに作成されるスコープであり、
-本フレームワークでは複数のウィンドウで共有されるデータを保持する目的で使用する。
-ユーザがログインした時点で作成され、ログアウトもしくはセッションタイムアウトが発生するまで維持される。
-
-セッションスコープ上のデータは複数のウィンドウから同時にアクセスされる可能性があり、
-適切に同期化しなければならない。
-
-**セッションスコープに保持するデータ**
-
-* ログインユーザに紐づくデータ(ログインユーザID、認証・認可情報)
-* ウィンドウ間で同一のデータを参照・更新する必要があるデータ(ショッピングカート内の商品情報など)
-
-**セッションスコープの実装方式**
-
-セッションスコープの実装方式には、HTTPSessionオブジェクトを使用するものと、
-データベースを使用した独自実装の2通りの方式が存在する。
-この選択は、アプリケーションサーバのスケーリング方式に大きく影響する。
-
-HTTPSessionオブジェクトを使用する場合、同じログインユーザからのリクエストを
-セッションスコープが存在するサーバインスタンスに必ず振り分けるようにするか、
-(セッションアフィニティ方式)
-サーバクラスタ内の全てのサーバインスタンスでセッションスコープを同期する必要がある。
-(セッションパーシステント方式)
-
-データベースを使用した独自実装を使用した場合、アプリケーションサーバについては
-ほぼ制約無くスケールアップさせることができるが、データベースへの負荷は増加する。
-
-> **Note:**
-> データベースを使用したHTTPセッション実装は現時点では提供されていない。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpRequestJavaPackageMapping.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpRequestJavaPackageMapping.md
deleted file mode 100644
index 073612c84..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpRequestJavaPackageMapping.md
+++ /dev/null
@@ -1,56 +0,0 @@
-## HTTPリクエストディスパッチハンドラ
-
-**クラス名:** `nablarch.fw.handler.HttpRequestJavaPackageMapping`
-
------
-
-### 概要
-
-このハンドラは、画面オンライン処理におけるリクエストパス中の部分文字列(ベースURI)をJavaパッケージ階層にマッピングすることで、
-動的に委譲先ハンドラを決定するディスパッチ処理を行う。
-
-本ハンドラの実装は [リクエストディスパッチハンドラ](../../component/handlers/handlers-RequestPathJavaPackageMapping.md) を直接継承しており、その機能は以下の2点を除けば全く同じものである。
-
-1. ディスパッチ対象のクラスが確定した時点で、HTTPアクセスログにその内容を出力する。
-2. ベースパスを設定する際にURLの書式精査を行うアクセサ(**#setBaseUri()**)を追加。
-
-機能の詳細については、 [リクエストディスパッチハンドラ](../../component/handlers/handlers-RequestPathJavaPackageMapping.md) を参照すること。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPリクエストパスによるディスパッチハンドラ | nablarch.fw.handler.HttpRequestJavaPackageMapping | HttpRequest | Object | HTTPリクエストパスをもとに業務アクションを決定しハンドラキューに追加する。HTTPメソッドによるメソッド単位のディスパッチを行う。(HttpMethodBinding) | - | - |
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| ベースURI | baseUri | String | 任意指定 (デフォルト = "") |
-| ベースパッケージ | basePackage | String | 任意指定 (デフォルト = "") |
-| ハンドラ追加位置 | immediate | boolean | 任意指定 (デフォルト = true) |
-| リクエストパスのパターンとマッピング先 Javaパッケージの組み合わせ | optionalPackageMappingEntries | nablarch.fw.handler .JavaPackageMappingEntry | 任意指定 (デフォルト = null) |
-
-**設定例**
-
-以下の設定では、画面オンライン処理のリクエストパス中のベースURI(コンテキストルート) **/webapp/sample** を、
-Javaパッケージ **nablarch.sample.apps** に対応させている。
-
-```xml
-
-
-
-
-
-```
-
-上記設定を行った場合のディスパッチの例を以下に示す。
-
-| リクエストパス | ディスパッチ対象クラス |
-|---|---|
-| /webapp/sample/AdminApp | nablarch.sample.apps.AdminApp |
-| /webapp/sample/user/UserApp | nablarch.sample.apps.user.UserApp |
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpResponseHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpResponseHandler.md
deleted file mode 100644
index 42eddb60e..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpResponseHandler.md
+++ /dev/null
@@ -1,216 +0,0 @@
-## HTTPレスポンスハンドラ
-
-**クラス名:** `nablarch.fw.handler.HttpResponseHandler`
-
------
-
------
-
-### 概要
-
-このハンドラは、後続ハンドラの処理結果となるHTTPレスポンスオブジェクトの内容に沿って、
-サーブレットフォーワード処理や、サーバソケットへの出力といったレスポンス処理を行う。
-
-HTTPレスポンスオブジェクトは、あくまで「レスポンス処理を行うために必要な情報を格納したクラス」であり、
-これを生成しただけではレスポンス処理は行われない。
-HTTPレスポンスオブジェクトの内容に沿って実際にレスポンス処理を行うのはこのハンドラである。
-
-HTTPレスポンスオブジェクトがクライアントに送信するレスポンスボディの内容を指定する方法は大きく2つある。
-
-1つめは、HTTPレスポンスオブジェクトに対して直接レスポンスボディの内容を設定する方法であり、
-主に [ファイルダウンロード](../../component/libraries/libraries-05-FileDownload.md) 処理などで使用する。
-
-もう1つは、 [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) と呼ばれる文字列によってレスポンス内容を指定する方法であり、
-通常の業務機能の実装ではこちらを主に使用する。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 |
-| リソースマッピングハンドラ | nablarch.fw.web.handler.ResourceMapping | HttpRequest | HttpResponse | リクエストURIを、クラスパス上のリソースパスもしくはサーブレットフォーワードパスにマッピングすることで、業務アクションを実行することなくHTTPレスポンスオブジェクトを作成して返却する。 | - | - |
-| 画面オンライン処理業務アクション | nablarch.fw.action.HttpMethodBinding | HttpRequest | HttpResponse | HTTPリクエストの内容をもとに業務処理を実行する | 遷移先画面に表示する内容をリクエストコンテキストに設定した上で、遷移先パスを設定したHTTPレスポンスオブジェクトを返却する。 | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| * [リソースマッピングハンドラ](../../component/handlers/handlers-ResourceMapping.md) * [画面オンライン処理用業務アクションハンドラ](../../component/handlers/handlers-HttpMethodBinding.md) | 本ハンドラは、 [HttpResponse](../../javadoc/nablarch/fw/web/HttpResponse.html) をリターンもしくは送出するこれらのハンドラの上位に 配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラへの処理委譲)**
-
-往路では本ハンドラは特段の処理を行なわない。
-引数をそのまま後続ハンドラに渡して処理を委譲し、その結果としてHTTPレスポンスオブジェクトを取得する。
-
-**[復路での処理]**
-
-**2. (コンテンツパスの取得)**
-
-HTTPレスポンスオブジェクトに設定された [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) 文字列を取得する。
-
-**2a. (サーブレットフォーワード処理)**
-
-[コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) が **"forward://"** で開始されていた場合は、
-フォーワード名に対するサーブレットフォーワードを実行する。
-この場合、クライアントに対するレスポンスの出力処理はフォーワード先のサーブレットで実行される。
-
-フォーワード完了後、HTTPレスポンスオブジェクトをリターンして終了する。
-
-**3. (HTTPレスポンスヘッダー送信)**
-
-HTTPレスポンスに設定されたHTTPヘッダーの内容をクライアントに送信する。
-(ボディの内容はChunkedエンコーディングによって送信される。)
-
-**3a. (HTTPリダイレクション)**
-
-[コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) が **"redirect://"** 、 **"http://"** 、 **"https://"**
-のいずれかで開始されていた場合は、パス文字列を **Location** ヘッダに設定し、リダイレクトの
-HTTPレスポンスを送信する。
-
-なお、 **redirect://** スキームかつ絶対パス指定であった場合は、 **Location** ヘッダに設定するパスに
-サーブレットコンテキストルートのパスを補完する。
-
-**4a. (HTTPレスポンスボディ送信: ファイルシステム上のファイルの内容を送信)**
-
-[コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) が **"file://"** で開始されていた場合は、
-パスに指定されたファイルの内容をレスポンスボディとして送信する。
-
-**4b. (HTTPレスポンスボディ送信: クラスパス上のリソースの内容を送信)**
-
-[コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) が **"classpath://"** で開始されていた場合は、
-コンテキストクラスローダからパスに指定されたリソースを取得し、その内容をレスポンスボディとして送信する。
-
-**4c. (HTTPレスポンスボディ送信: InputStreamの内容を送信)**
-
-HTTPレスポンスオブジェクトに直接InputStreamが設定されている場合、
-もしくは、 `HttpResponse#write()` メソッドによってレスポンス内容を
-HTTPレスポンスオブジェクト内にバッファリングしている場合は
-その内容をレスポンスボディとして送信する。
-
-**5. (終端処理)**
-
-レスポンス処理で使用した入出力ストリームを全てクローズする。
-また、HTTPレスポンスオブジェクト上にレスポンス内容がバッファリングされている場合は削除する。
-
-**6. (正常終了)**
-
-HTTPレスポンスオブジェクトをリターンして終了する。
-
-**[例外処理]**
-
-**1a. (後続ハンドラ実行中のエラー)**
-
-後続ハンドラ実行中に例外が送出された場合は、
-既定のエラー画面をレスポンス後、例外を再送出する。
-ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。
-
-**2a-b. (サーブレットフォーワード先でのエラー)**
-
-フォーワード先のJSPやサーブレットでエラーが発生した場合は、
-システムエラー画面をクライアント側に送信して終了する。
-
-**2a-c. (サーブレットフォーワード中のIOエラー)**
-
-サーブレットフォーワード処理中にIOエラーが発生した場合は、
-ワーニングレベルのログを出力した上でHTTPレスポンスオブジェクトをリターンして終了する。
-
-**5a. (レスポンス処理中のIOエラー)**
-
-レスポンス処理および、終端処理においてIOエラーが発生した場合は、
-ワーニングレベルのログを出力した上で処理を継続する。
-
-**5a. (レスポンス処理中のその他のエラー)**
-
-レスポンス処理および、終端処理において例外が発生した場合は、
-システムエラー画面をクライアントに送信し、 **5.** の終端処理を行なったうえで、例外を再送出する。
-
------
-
-#### ステータスコードの変換
-
-HTTPレスポンスハンドラは、内部で 404 などのエラー用レスポンスが返された際に、正常レスポンスを表す 200 にステータスコードを変換する。
-
-これは、ブラウザのレスポンスコードによる挙動の差異を発生させないための施策である。
-
-例外的に、転送に用いられる 300 系のレスポンスコードであった場合と、
-クライアントからのリクエストヘッダ "X-Requested-With" の値が "XMLHttpRequest" である
-場合(つまり AJAX のリクエストの場合) 内部のエラーコードをそのままステータスコードとする。
-
-#### 言語毎のコンテンツパスの切り替え
-
-HTTPレスポンスハンドラは、HTTPリクエストから取得した言語設定をもとに、フォーワード先を動的に切り替える機能をもつ。
-ResourcePathRule抽象クラスのサブクラスを使用して言語毎のコンテンツパスを取得することで、
-HTTPレスポンスハンドラは言語毎のコンテンツパスの切り替えを行う。
-
-ResourcePathRuleおよび本フレームワークがデフォルトで提供するサブクラスを下記に示す。
-
-| クラス名 | 説明 |
-|---|---|
-| ResourcePathRule | 言語対応リソースパスのルールを表すクラス。 言語はスレッドコンテキストから取得する。 スレッドコンテキストへの言語設定については、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md#スレッドコンテキスト変数管理ハンドラ) を参照。 スレッドコンテキストから言語を取得できない場合は指定されたリソースパスをそのまま返す。 言語対応のリソースパスが指すファイルが存在する場合のみ言語対応のリソースパスを返す。 ファイルが存在しない、または指定されたリソースパスに拡張子を含まない場合は 指定されたリソースパスをそのまま返す。 サブクラスでは言語対応のリソースパスを作成するメソッドを実装する。 |
-| DirectoryBasedResourcePathRule | コンテキストルート直下のディレクトリを言語の切り替えに使用するクラス。 ```bash # /management/user/search.jspを日本語(ja)と英語(en)に対応する場合の配置例 # コンテキストルート直下に言語ごとにディレクトリを作成する。 # ディレクトリ名は言語名とする。 コンテキストルート ├─en │ └─management │ └─user │ search.jsp └─ja └─management └─user search.jsp ``` |
-| FilenameBasedResourcePathRule | ファイル名を言語の切り替えに使用するクラス。 ```bash # /management/user/search.jspを日本語(ja)と英語(en)に対応する場合の配置例 # 言語毎にファイルを作成する。 # ファイル名にはサフィックス「"_"+言語名」を付ける。 コンテキストルート └─management └─user search_en.jsp search_ja.jsp ``` |
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 言語毎コンテンツパスの対応ルール | contentPathRule | ResourcePathRule | 任意指定(デフォルト=DirectoryBasedResourcePathRule) |
-
-**標準設定**
-
-以下は標準設定におけるDI設定の例である。
-
-```xml
-
-
-```
-
-**言語毎のコンテンツパス切り替えを行なう場合の設定**
-
-言語毎に切り替えたいコンテンツは、コンテキストルート直下に言語毎のディレクトリを作成し、
-言語毎のディレクトリにデフォルトのコンテンツパスと同じでパスで配置する。
-コンテンツパスの例を示す。
-
-```bash
-# デフォルトのコンテンツパス
-/management/user/search.jsp
-
-# 日本語対応のコンテンツパス
-/ja/management/user/search.jsp
-
-# 英語対応のコンテンツパス
-/en/management/user/search.jsp
-```
-
-リポジトリの設定例を示す。
-
-```xml
-
-
-
-
-
-
-
-```
-
-スレッドコンテキストに設定された言語と使用されるコンテンツパスの例を示す。
-ここでは上記コンテンツパスの例に記載したファイルが配置されているものとする。
-
-```bash
-# HttpResponseオブジェクトに設定されたコンテンツパス
-servlet:///management/user/search.jsp
-
-# スレッドコンテキストの言語 -> 使用されるコンテンツパス
-ja -> /ja/management/user/search.jsp
-en -> /en/management/user/search.jsp
-it -> /management/user/search.jsp
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpRewriteHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpRewriteHandler.md
deleted file mode 100644
index 5e78466e2..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-HttpRewriteHandler.md
+++ /dev/null
@@ -1,279 +0,0 @@
-## HTTPリライトハンドラ
-
-**クラス名:** `nablarch.fw.web.handler.HttpRewriteHandler`
-
------
-
------
-
-### 概要
-
-このハンドラでは、HTTPリクエストオブジェクトおよび、HTTPレスポンスオブジェクトの内容を、
-事前に設定されたルール(リライトルール)に従って動的に書き換える機能を提供する。
-
-また、書換えが行われた際に、リクエストパスの部分文字列や、リクエストパラメータ、
-HTTPヘッダーのなどの内容を各スコープ上の変数として設定することができる。
-
-> **Note:**
-> 本ハンドラは個別プロジェクトでの特殊要件に柔軟に対応する目的で作成されており、
-> 標準ハンドラ構成には含まれない。
-
-#### リライトルール
-
-本ハンドラの動作は、本節で解説する [リライトルール](../../component/handlers/handlers-HttpRewriteHandler.md#リライトルール) 呼ばれる設定項目によって定義され、
-その内容に従って様々な処理を行うことができる。
-
-1つのリライトルールに関する情報は、 [RewriteRule](../../javadoc/nablarch/fw/handler/RewriteRule.html) オブジェクトのプロパティとして保持される。
-
-本ハンドラでは、 HTTPリクエストオブジェクトのリクエストパスおよび、HTTPレスポンスオブジェクトの
-[コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) に対する書換えを行うことができる。
-設定は、それぞれ [RewriteRule](../../javadoc/nablarch/fw/handler/RewriteRule.html) のサブクラスである [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) および [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) を用いて行うが、
-書換えの対象が異なるだけで、設定項目の内容は同じである。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 処理対象パターン | pattern | String | 必須指定 書き換え処理が行われるパスのパターンを 正規表現で指定する。 |
-| 置換先パス | rewriteTo | String | 任意指定 パスの書き換え処理の内容を表す文字列を 指定する。 省略した場合は置換処理は行わず、現在のパスを そのまま使用する。 |
-| 適用条件リスト | conditions | List | 任意指定(デフォルトは空のList) 書き換え処理が行われるための追加条件を指定する。 |
-| 変数定義リスト | exports | List | 任意指定(デフォルトは空のList) 書き換え処理が行われた際に、各種スコープ上 (リクエスト、セッション、スレッドコンテキスト等) に定義する変数名とのその内容を指定する。 |
-
-以下では、このリライトルールについて具体例を挙げて解説する。
-
-**例1) 単純置換**
-
-この設定例では、サーブレットコンテキストルートに対するアクセスに対してログインJSP画面を表示させている。
-
-```xml
-
-
-
-
-
-```
-
-処理対象パターンは上記例のようにサーブレットコンテキストを起点とする相対パスへの正規表現として指定する。
-( [リクエストハンドラエントリ](../../component/handlers/handlers-RequestHandlerEntry.md) のようなGlob式によるパターン指定とは異なるので注意すること。)
-
-また、置換先パスが **"servlet://** もしくは **redirect://** で始まる場合は、それぞれサーブレットフォーワード、
-HTTPリダイレクトによるレスポンスが返されるので、後続のハンドラに処理は移譲されない。
-
-一方、ログイン画面の表示処理が単純なJSPへのフォーワードでは無く、業務アクションでの処理を要する場合は、
-以下の様に指定する。
-
-```xml
-
-
-
-
-
-```
-
-この場合は、リクエストパスを、 **"/"** から **/action/LoginAction/authenticate** に書き換えた上で
-後続のハンドラに処理を移譲する。
-
-**例2) 適用条件の追加**
-
-書き換えを行う条件は、リクエストパスのパターン以外の方法で判定することができる。
-以下の設定例では、セッションスコープ上にユーザIDが設定されていれば、ログイン画面ではなく、
-メニュー画面に直接遷移させている。
-
-```xml
-
-
-
-
-
- %{session:user.id} ^\w+$
-
-
-
-
-```
-
-上記例のように、条件の指定は以下の書式で行う。
-
-```bash
-%{(変数種別名):(変数名)} (パターン)
-```
-
-各リライトルールで使用可能な変数種別は以下の通り。
-
-| 変数種別 | 書式 | 対象 |
-|---|---|---|
-| セッションスコープ | %{session:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| リクエストスコープ | %{request:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| スレッドコンテキスト | %{thread:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| リクエストパラメータ | %{param:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) |
-| HTTPヘッダ | %{header:(ヘッダー名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| HTTPリクエストメソッド | %{httpMethod} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) |
-| HTTPバージョン | %{httpVersion} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) |
-| 全リクエストパラメータ名 | %{paramNames} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) |
-| ステータスコード | %{statusCode} | [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-
-**例3) 変数の設定**
-
-パスの書き換えと同時に、各種スコープ上に変数を定義し、後続のハンドラやJSPから参照することが可能である。
-以下の設定例では、HTTPリファラヘッダの値をリクエストスコープ変数 **prevUrl** に設定している。
-
-```xml
-
-
-
-
-
-
-
- %{header:Referer} ^\S+$
-
-
-
-
-
- %{request:prevUrl} ${header:Referer}
-
-
-
-```
-
-HTTPリクエストの書き換えでは、以下のスコープ上に変数を設定することができる。
-
-| 変数スコープ | 書式 | 対象 |
-|---|---|---|
-| セッションスコープ | %{session:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| リクエストスコープ | %{request:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| スレッドコンテキスト | %{thread:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) / [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) |
-| ウィンドウスコープ | %{param:(変数名)} | [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) |
-
-また、 **rewriteTo** 属性で指定される置換先パス、および、 **exports** 属性で指定される変数値には、
-以下の書式で埋め込みパラメータを使用することができる。
-
-| 書式 | 意味 |
-|---|---|
-| ${(バックトラック番号)} | pattern属性に指定されたリクエストパス に対する部分マッチ(キャプチャ)の内容。 **${0}** : マッチ内容全体 **${1}** : 第1キャプチャの内容 **${n}** : 第nキャプチャの内容 |
-| ${(変数種別名):(変数名)} | 各変数の内容 **${session:user.id}** : セッションスコープ上のuser.id変数の値 **${httpMethod}** : HTTPリクエストメソッド名(GET/POST/PUT...) |
-| ${(変数種別名):(変数名):バックトラック番号} | condition属性で指定された適用条件に対する部分マッチ (キャプチャ)の内容。 **${header:Referer:1}** : リファラヘッダに対する第1キャプチャの内容 |
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 |
-| HTTPリライトハンドラ | nablarch.fw.web.handler.HttpRewriteHandler | HttpRequest | HttpResponse | HTTPリクエストパスの内容を指定した条件に従って書き換える。 | HTTPレスポンスのコンテンツパスの内容を、指定した条件に従って書き換える。 | - |
-| スレッドコンテキスト変数設定ハンドラ(リクエストスレッド) | nablarch.common.handler.ThreadContextHandler_request | Object | Object | 前のループで設定されたスレッドコンテキスト変数をクリアするためここで再初期化する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) | 本ハンドラで [HttpResponse](../../javadoc/nablarch/fw/web/HttpResponse.html) 内のコンテンツパスの書き換えを行う場合は、 [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) を本ハンドラの上位に配置しないと、書き換え後のパスが レスポンスに反映されない。 |
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | 本ハンドラで書換えたリクエストパスや各種スコープ変数の内容もとに、 [スレッドコンテキスト](../../component/libraries/libraries-thread-context.md) 上の属性を導出している 場合は、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) を本ハンドラの後続に配置し、本ハンドラで 書換えた内容を反映させる必要がある。 特に、リクエストパスから導出されるリクエストIDは後続ハンドラへの影響が 大きいので留意すること。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (リクエストパスに対する書き換え処理)**
-
-本ハンドラの **requestPathRewriteRules** に設定された [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) の先頭要素から順に
-条件が合致するかどうかを確認する。
-合致したものがあれば、その内容に従ってリクエストパスの書き換えとスコープに対する変数定義を行う。
-どれか1つでも条件に合致すれば、それ以降のルールについては評価されない。
-
-**1a. (サーブレットフォワード)**
-
-**1.** での処理の結果、書き換え先のパスが "servlet://" で開始されるリライトルールが適合した場合、
-当該のコンテンツパスによるHTTPレスポンスオブジェクトを生成し、リターンして終了する。
-(後続ハンドラに対する処理の移譲は行われない。)
-
-**1b. (リダイレクト)**
-
-**1.** での処理の結果、書き換え先のパスが "redirect://" で開始されるリライトルールが適合した場合、
-当該のコンテンツパスによるHTTPレスポンスオブジェクトを生成し、リターンして終了する。
-(後続ハンドラに対する処理の移譲は行われない。)
-
-**2. (後続ハンドラへの処理移譲)**
-
-**1.** で書き換え処理を行ったHTTPリクエストオブジェクトを
-後続ハンドラに渡して処理を委譲し、その結果となるHTTPレスポンスオブジェクトを取得する。
-
-**[復路での処理]**
-
-**3. (コンテンツパスに対する書き換え処理)**
-
-**2.** で取得したHTTPレスポンスオブジェクトに設定されたコンテンツパスに対して
-本ハンドラに設定された [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) を順次適用し、
-コンテンツパスの書き換えおよび、変数定義を行う。
-リクエストパスの書き換えと同様、どれか1つでも条件に合致すれば、それ以降のルールについては評価されない。
-
-**4. (正常終了)**
-
-**3.** で書き換えを行ったHTTPレスポンスオブジェクトをリターンし、終了する。
-
-**[例外処理]**
-
-**2a. (後続ハンドラ処理中のエラー)**
-
-後続ハンドラの処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの挙動は、HTTPリクエストに対する書き換え処理を定義する [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html)
-および、HTTPレスポンスに使用するコンテンツパスの書き換え処理を定義する [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) によって
-決定される。
-
-本ハンドラにはそれらのリストを設定する。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| リクエストリライト定義 | requestPathRewriteRules | List | 任意指定(デフォルトは空のリスト) HTTPリクエストパスに対する書き換え 処理定義のリストを設定する。 |
-| コンテンツパスリライト定義 | contentsPathRewriteRules | List | 任意設定(デフォルトは空のリスト) HTTPレスポンスのコンテンツパスに 対する書き換え処理定義のリストを 設定する。 |
-
-以下は設定例である。
-( [HttpRequestRewriteRule](../../javadoc/nablarch/fw/web/handler/HttpRequestRewriteRule.html) と、 [ContentPathRewriteRule](../../javadoc/nablarch/fw/web/handler/ContentPathRewriteRule.html) の設定内容については [リライトルール](../../component/handlers/handlers-HttpRewriteHandler.md#リライトルール) を参照すること。)
-
-```xml
-
-
-
-
-
-
-
-
-
- %{session:user.id} ^\S+$
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %{statusCode} ^401$
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-KeitaiAccessHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-KeitaiAccessHandler.md
deleted file mode 100644
index 866609939..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-KeitaiAccessHandler.md
+++ /dev/null
@@ -1,90 +0,0 @@
-## 携帯端末アクセスハンドラ
-
-**クラス名:** `nablarch.fw.web.handler.KeitaiAccessHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラは携帯端末、特にいわゆる「フィーチャーフォン」からのアクセスを想定したページを出力するハンドラである。
-具体的には以下の処理を行う。
-
-* リクエストパラメータ中に埋め込まれた遷移先URIでリクエストパスを置換する。
- これにより、javascriptに対応していない携帯端末でも、サブミットボタン毎の遷移先切替、
- ウィンドウスコープの利用等が可能となる。
-* javascript等の出力を抑制するフラグ(nablarch_jsUnsupported)をリクエストスコープ変数に設定する。
- (このフラグはJSP中の各カスタムライブラリで使用される。)
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 |
-| 携帯対応ハンドラ | nablarch.fw.web.handler.KeitaiAccessHandler | HttpRequest | HttpResponse | - | - | - |
-| スレッドコンテキスト変数設定ハンドラ(リクエストスレッド) | nablarch.common.handler.ThreadContextHandler_request | Object | Object | 前のループで設定されたスレッドコンテキスト変数をクリアするためここで再初期化する。 | - | - |
-| Nablarchカスタムタグ制御ハンドラ | nablarch.common.web.handler.NablarchTagHandler | HttpRequest | HttpResponse | Nablarchカスタムタグの動作に必要な事前処理を実施する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) | 本ハンドラでは、携帯端末向けにjavascriptを使用しないHTMLを出力させるフラグを設定 するため、 [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) を本ハンドラの上位に配置しないと、 その設定がレスポンスに反映されない。 |
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | 本ハンドラで書換えたリクエストパスの内容をもとに、 [スレッドコンテキスト](../../component/libraries/libraries-thread-context.md) 上のリクエストID属性 を決定するので、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) は本ハンドラの後続に配置する必要が ある。 |
-| [Nablarchカスタムタグ制御ハンドラ](../../component/handlers/handlers-NablarchTagHandler.md) | 本ハンドラで設定したリクエストパラメータ **nablarch_sumbit** の値をもとに 改竄チェックやウィンドウスコープの展開等を行うので、 [Nablarchカスタムタグ制御ハンドラ](../../component/handlers/handlers-NablarchTagHandler.md) は、本ハンドラの後続に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (携帯対応画面出力フラグを設定)**
-
-遷移先のJSPページでの javascript等の出力を抑制するフラグ変数 (**nablarch_jsUnsupported**)
-をリクエストスコープに設定する。
-
-**2. (リクエストパスに対する書き換え処理)**
-
-リクエストパラメータ中に"nablarch_uri_override"で始まる名前のパラメータが
-存在した場合、その内容を元に、リクエストパスを置換するとともに、リクエストパラメータ **nablarch_sumit**
-の値を設定する。
-
-**3. (後続ハンドラへの処理移譲)**
-
-**2.** で書き換え処理を行ったHTTPリクエストオブジェクトを
-後続ハンドラに渡して処理を委譲する。
-その結果であるHTTPレスポンスオブジェクトを取得する。
-
-**[復路での処理]**
-
-**4. (正常終了)**
-
-**3.** で取得したHTTPレスポンスオブジェクトをリターンして終了する。
-
-**[例外処理]**
-
-**3a. (後続ハンドラ処理中のエラー)**
-
-後続ハンドラの処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラ自体に設定項目は存在しないが、
-携帯対応を行うリクエストパスの範囲を限定するため、通常は [リクエストハンドラエントリ](../../component/handlers/handlers-RequestHandlerEntry.md) と組み合わせて使用する。
-
-**設定例**
-
-この設定例では、サーブレットコンテキストからの相対パス "/action/mobile/" 配下のアクセスに対して
-本ハンドラを動作させている。
-
-```xml
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-LoopHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-LoopHandler.md
deleted file mode 100644
index 13098a5e7..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-LoopHandler.md
+++ /dev/null
@@ -1,149 +0,0 @@
-## トランザクションループ制御ハンドラ
-
-**クラス名:** `nablarch.fw.handler.LoopHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラは、データリーダ上に処理対象のデータが存在する間、後続ハンドラの処理を繰り返し実行するとともに、
-トランザクション制御を行ない、一定の繰り返し回数ごとにトランザクションをコミットする。
-これにより、バッチ処理のスループットを向上させることができる。
-
-本ハンドラの機能はトランザクション管理機能とループ制御機能を兼ねているため
-[トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) および [リクエストスレッド内ループ制御ハンドラ](../../component/handlers/handlers-RequestThreadLoopHandler.md) とは排他利用である。
-
-> **Warning:**
-> 本ハンドラでは、複数の業務処理の一括コミットを許容している。
-> このため、業務アクションハンドラ上の処理が正常終了したとしても、後続レコードの処理でエラーが
-> 発生することによりロールバックされる可能性がある。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| データベース接続管理ハンドラ | nablarch.common.handler.DbConnectionManagementHandler | Object | Object | 業務処理用DB接続を取得し、スレッドローカル上に保持する。 | 業務処理用DB接続を開放(プールに返却)する。 | 業務処理用DB接続を開放(プールに返却)する。 | - |
-| トランザクションループハンドラ | nablarch.fw.handler.LoopHandler | Object | Object | 実行中の業務トランザクションがなければ、新規のトランザクションを開始する。 | コミット間隔毎に業務トランザクションをコミットする。また、データリーダ上に処理対象データが残っていればループを継続する。 | 業務トランザクションをロールバックする。 | 1.コミット完了後 / 2.ロールバック後 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [データベース接続管理ハンドラ](../../component/handlers/handlers-DbConnectionManagementHandler.md) | このハンドラの上位に配置することで、本ハンドラが管理するトランザクションにDB接続を参加させることができる。 |
-
-**コールバックイベント**
-
-本ハンドラでは [データベース接続管理ハンドラ](../../component/handlers/handlers-DbConnectionManagementHandler.md) と同様のコールバックを行なう。
-後続のハンドラがイベントリスナ **TransactionManagementHandler.Callback** を実装することで、
-下記のイベント発生時にコールバックを受けることができる。
-
-1. 業務処理正常終了時
-
-```java
-TransactionManagementHandler.Callback#transactionNormalEnd(TData data, ExecutionContext context): void
-```
-
-> **Warning:**
-> このコールバックは、レコード一件に対する業務処理が正常終了した場合に呼ばれるが、
-> [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) とは異なり、この時点ではまだ
-> トランザクションのコミットが確定していない点に留意すること。
-
-> これは、本ハンドラでは、コミット単位を任意に設定することができることに起因する制約である。
-
-1. トランザクションロールバック直後
-
-```java
-TransactionManagementHandler.Callback#transactionAbnormalEnd(TData data, ExecutionContext context): void
-```
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (トランザクションの取得と開始)**
-
-本ハンドラに設定されたトランザクションファクトリからトランザクションオブジェクトを取得し、
-トランザクションを開始する。
-また、取得したトランザクションオブジェクトをスレッドローカル変数に格納する。
-
-**2. (ループ開始前の初期化処理)**
-
-ループ開始前のハンドラキューのシャローコピーを作成する。
-未コミット件数を0に初期化する。
-
-**3. (ループ開始)**
-
-実行コンテキスト上のハンドラキューの内容を **2.** で作成したループ開始前の状態に戻す。
-
-**4. (後続ハンドラの実行)**
-
-ハンドラキュー上の後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**5. (1件分の処理が正常終了)**
-
-後続ハンドラでの処理が正常終了した場合は、未コミット件数を1件増加させる。
-また、後続ハンドラのうち、イベントリスナ **TransactionManagementHandler.Callback** を実装しているハンドラに対して
-以下のコールバックを呼び出す。:
-
-```
-TransactionManagementHandler.Callback#transactionNormalEnd(TData data, ExecutionContext context): void
-```
-
-**5a. (データリーダが終端に達していた場合)**
-
-**4.** の結果が **nablarch.fw.DataReader.NoMoreRecord** であった場合は、
-業務処理が呼ばれる前にデータリーダの終端に達しているため、コールバックは呼ばずにスキップする。
-
-**6. (コミット判定)**
-
-現在の未コミット件数が、本ハンドラに設定されたコミット間隔に一致する場合は、現在のトランザクションをコミットする。
-
-**7. (ループ継続)**
-
-実行コンテキスト上のデータリーダの状態を確認し、終端に達していなければ、
-**3.** 以降の処理を再度実行する。
-
-**7a. (ループ終端)**
-
-データリーダが終端に達していた場合は、未コミット処理をコミットした上で、
-**4.** の処理結果をリターンして終了する。
-
-**例外処理**
-
-**5b. (例外制御)**
-
-**4.** での処理中に、後続ハンドラから未捕捉の例外が送出された場合は、トランザクションをロールバックする。
-(未コミットの処理についてもあわせてロールバックされる。)
-また、後続ハンドラのうち、イベントリスナ **TransactionManagementHandler.Callback** を実装しているハンドラに対して
-以下のコールバックを呼び出す。:
-
-```
-TransactionManagementHandler.Callback#transactionAbnormalEnd(TData data, ExecutionContext context): void
-```
-
-例外を再送出し、ループを終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| コミット間隔回数 | commitInterval | int | 任意指定(デフォルト=1) |
-| トランザクション取得機能 | transactionFactory | TransactionFactory | 必須指定 |
-| 使用DBコネクション名 | transactionName | String | 任意指定(デフォルト="transaction") |
-
-以下はDIリポジトリ設定ファイルへの記述例である。
-コミット間隔は運用状況等に応じて変更される可能性があるので、埋め込みパラメータとして定義しておくことを推奨する。
-
-```xml
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-Main.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-Main.md
deleted file mode 100644
index 847710e84..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-Main.md
+++ /dev/null
@@ -1,203 +0,0 @@
-## 共通起動ランチャ
-
-**クラス名:** `nablarch.fw.launcher.Main`
-
------
-
------
-
-### 概要
-
-[共通起動ランチャ](../../component/handlers/handlers-Main.md) は本フレームワークの起動シーケンスの起点となるクラスであり、javaコマンドから直接起動することで、
-リポジトリの初期化を行い、そこに定義されたハンドラキューを実行させることができる。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| 共通起動ランチャ | nablarch.fw.handler.Main | CommandLine | Integer | Javaコマンドから直接実行することで、DIリポジトリを初期化し、ハンドラキューを構築・実行する。 | 後続ハンドラの処理結果(整数値)を終了コードに指定し、プロセスを停止する。 | Fatalログを出力しプロセスを異常終了させる。 |
-| ステータスコード→プロセス終了コード変換 | nablarch.fw.handler.StatusCodeConvertHandler | CommandLine | Integer | - | 後続ハンドラの処理結果をもとに、プロセス終了コード(整数値)を決定して返す。 | - |
-| グローバルエラーハンドラ | nablarch.fw.handler.GlobalErrorHandler | Object | Result | - | - | 全ての実行時例外・エラーを捕捉し、ログ出力を行う |
-| スレッドコンテキスト変数設定ハンドラ(メインスレッド) | nablarch.common.handler.ThreadContextHandler_main | Object | Object | 起動引数の内容からリクエストID、ユーザID等のスレッドコンテキスト変数を初期化する。 | - | - |
-| リクエストディスパッチハンドラ | nablarch.fw.handler.RequestPathJavaPackageMapping | Request | Object | 引数として渡されたリクエストオブジェクトのリクエストパスから、処理対象の業務アクションを決定しハンドラキューに追加する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [ステータスコード→プロセス終了コード変換ハンドラ](../../component/handlers/handlers-StatusCodeConvertHandler.md) | ハンドラキューの先頭に配置する。 [共通起動ランチャ](../../component/handlers/handlers-Main.md) では、このハンドラが返した整数値をプロセス終了コードとして使用する。 終了コードの体系はプロジェクト毎に異なる可能性があるので 必要に応じて差し替えられるよう、本クラスから責務を分離している。 |
-| [グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) | 後続のハンドラで発生した全ての実行時例外およびエラーはこのハンドラによって捕捉される。 [共通起動ランチャ](../../component/handlers/handlers-Main.md) では、このハンドラが [ステータスコード→プロセス終了コード変換ハンドラ](../../component/handlers/handlers-StatusCodeConvertHandler.md) の後続に 配置されていることを前提としている。 |
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | [共通起動ランチャ](../../component/handlers/handlers-Main.md) の起動引数 **-requestPath** および、 **-userId** の値をもとに、 スレッドコンテキスト変数の **リクエストID** および、 **ユーザID** の値をそれぞれ設定する。 |
-| [リクエストディスパッチハンドラ](../../component/handlers/handlers-RequestPathJavaPackageMapping.md) | [バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-architectural-pattern-batch.md) などでは、 [共通起動ランチャ](../../component/handlers/handlers-Main.md) の起動引数 **-requestPath** の値をもとに業務アクションクラスのディスパッチを 行う。 |
-
-### ハンドラ処理フロー
-
-本ハンドラの処理の流れは以下のとおりである。
-
-> **Note:**
-> 以下の説明において **異常終了する** と表現されている部分では、障害ログを出力してプロセスを終了させる。
-
-**[往路処理]**
-
-**1. (起動引数の解析)**
-
-main関数に渡された起動引数をパースし、その結果をコマンドラインオブジェクト([CommandLine](../../javadoc/nablarch/fw/launcher/CommandLine.html))に設定する。
-起動引数の扱いについては、 [後述](../../component/handlers/handlers-Main.md#コマンドライン起動引数の扱い) する。
-
-**2. (リポジトリの初期化)**
-
-**-diConfig** パラメータに指定されたリポジトリ定義ファイルの内容に沿って初期化を行なう。
-初期化が正常終了した場合は、下記のオブジェクトIDに登録されたオブジェクトを取得する。
-
-| 論理名 | オブジェクトID | オブジェクトの型 |
-|---|---|---|
-| ハンドラキュー | **handlerQueue** | **List>** |
-| データリーダ | **dataReader** | [DataReader](../../javadoc/nablarch/fw/DataReader.html) |
-| データリーダファクトリ | **dataReaderFactory** | [DataReaderFactory](../../javadoc/nablarch/fw/DataReaderFactory.html) |
-
-**3. (実行コンテキストの構築)**
-
-実行コンテキスト([ExecutionContext](../../javadoc/nablarch/fw/ExecutionContext.html))を生成し、以下の処理を行う。
-
-1. ハンドラキューを設定
-2. データリーダおよびデータリーダファクトリを設定
-3. セッションスコープ変数に、起動パラメータのMapを設定する。
-
-**4. (ハンドラキューの実行)**
-
-ハンドラキュー上の最初のハンドラに対して、コマンドラインオブジェクトと実行コンテキストを引数として処理を委譲する。
-これにより、ハンドラキュー上の各ハンドラの処理が順次実行され、その処理結果オブジェクトが返される。
-
-**[復路処理]**
-
-**5. (正常終了)**
-
-後続のハンドラが正常終了した場合、処理結果オブジェクトのステータスコードを終了コードとしてプロセスを終了させる。
-ただし、ステータスコードが127を越えていた場合の終了コードは127とする。
-
-**[例外処理]**
-
-**1a. (必須パラメータ未指定エラー)**
-
-以下の必須パラメータのうちいずれかが指定されていなかった場合は異常終了する。(終了コード127)
-
-**-diConfig** 、 **-requestPath** 、 **-userId**
-
-**2a. (リポジトリ初期化エラー)**
-
-リポジトリ初期化時にエラーが発生した場合、もしくはハンドラキューが取得できな買った場合は異常終了する。
-(終了コード=127)
-
-**5a. (異常終了)**
-
-後続ハンドラの実行中に実行時例外およびエラーが送出された場合、
-それらを捕捉し、異常終了させる。(ステータスコード=127)
-
-> **Note:**
-> 本ハンドラはグローバルエラーハンドラの手前に配置されるため、基本的にここで例外を捕捉することは無い
-
------
-
-### コマンドライン起動引数の扱い
-
-**起動引数の処理**
-
-本クラスにおける起動引数の扱いについて、以下の実行例をもとに解説する。
-
-```bash
-java \
- -server \
- -Xmx128m \
- -DcommitInterval=100 \
- -DmaxExecutionCount=100000 \
-nablarch.fw.launcher.Main \
- -diConfig file:./batch-config.xml \
- -requestPath admin.DataUnloadBatchAction/BC0012 \
- -userId testUser \
- -namedParam value \
- value1 value2 value3
-```
-
-Javaコマンドに指定する引数は以下の3つに分類することができる。
-それぞれについて、本クラスでの取扱いについて述べる。
-
-1. Java VMパラメータ
-2. Javaシステムプロパティ
-3. クラス引数
-
-1. JavaVMパラメータ
-
-上記例中の **-server** や **-Xmx** はJavaVM自体の挙動に関するパラメータである。
-本フレームワークでこれらの値を直接使用することは無い。
-
-1. Javaシステムプロパティ
-
-DIリポジトリ設定ファイル中の埋め込みパラメータの値は、Javaシステムプロパティを用いて指定することができる。
-上記の例では、 **-DcommitInterval=100** と **-DmaxExecutionCount=100000** がこれに相当し、それぞれ
-埋め込みパラメータ **${commitInterval}** および **${maxExecutionCount}** の値を指定している。
-
-1. クラス引数
-
-本クラスに対する引数は、下記の形式に従ってパースし、
-後述するコマンドラインオブジェクト(nablarch.fw.launcher.Commandline)の属性値として設定する。
-
-1. 名前付きパラメータ
-
-**書式**:
-
-```
-'-' + (パラメータ名) + ' ' + (パラメータ値)
-```
-
-**アクセス方法**:
-
-```
-Commandline#getParamMap() : Map
-```
-
-**上記例で取得できる値**
-
-```javascript
-{ diConfig : "file:./batch-config.xml",
- requestPath: "nablarch.fw.sample.SampleBatchAction",
- userId : "testUser",
- namedParam : "value" }
-```
-
-1. 無名パラメータ
-
-**書式**:
-
-```
-(パラメータ値)
-```
-
-**アクセス方法**:
-
-```
-Commandline#getArgs() : List
-```
-
-**上記例で取得できる値**
-
-```javascript
-[ "value1", "value2", "value3" ]
-```
-
-**必須パラメータ**
-
-フレームワークの動作に必要となる以下の3つのパラメータについては、起動パラメータとして必ず指定する必要がある。
-
-| パラメータ | 内容 |
-|---|---|
-| **-diConfig** | リポジトリの設定ファイルのパスを指定する。 |
-| **-requestPath** | 以下の書式で定義される文字列を設定する。: ``` (実行対象アクションハンドラクラス) + '/' + (リクエストID値) ``` この値はコマンドラインオブジェクトに設定され、以下のハンドラで使用される。 * [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) * [リクエストディスパッチハンドラ](../../component/handlers/handlers-RequestPathJavaPackageMapping.md) |
-| **-userId** | プロセスの実行権限ユーザIDを設定する。 この値はセッションコンテキスト変数に格納される。 また、後続の [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) によってスレッドコンテキストに保持されることで、 ハンドラ以外の任意のコンポーネントからアクセスできるようになる。 (権限制御と関係なく、何らかの識別文字列を設定する必要がある。) |
-
-上記の必須パラメータのうちいずれかが欠けていた場合は、即座に異常終了する。(終了コード = 127)
-
-### 設定項目・拡張ポイント
-
-本クラスはJavaコマンドラインから直接実行するため、固有の設定項目は存在しない。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessageReplyHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessageReplyHandler.md
deleted file mode 100644
index 0578a151a..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessageReplyHandler.md
+++ /dev/null
@@ -1,103 +0,0 @@
-## 電文応答制御ハンドラ
-
-**クラス名:** `nablarch.fw.messaging.handler.MessageReplyHandler`
-
------
-
-### 概要
-
-本ハンドラでは、後続ハンドラの処理結果である [ResponseMessage](../../javadoc/nablarch/fw/messaging/ResponseMessage.html) オブジェクトの内容を
-もとに応答電文を構築し送信する。
-送信した応答電文オブジェクトをこのハンドラの戻り値として返す。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| メッセージングコンテキスト管理ハンドラ | nablarch.fw.messaging.handler.MessagingContextHandler | Object | Object | メッセージングコンテキスト(MQ接続)を取得し、スレッドローカルに保持する。 | メッセージングコンテキストを開放する。(プールに戻す) | メッセージングコンテキストを開放する。(プールに戻す) | - |
-| 電文応答制御ハンドラ | nablarch.fw.messaging.handler.MessageReplyHandler | Object | ResponseMessage | - | 後続ハンドラから返される応答電文オブジェクトの内容をもとに電文を作成して送信する。 | エラーオブジェクトの内容をもとに電文を作成して送信する。 | - |
-| データリードハンドラ(FW制御ヘッダリーダ/メッセージリーダ利用) | nablarch.fw.handler.DataReadHandler_messaging | Object | Result | 要求電文を受信しFW制御ヘッダ部を解析して要求電文オブジェクト(RequestMessage)を作成し後続のハンドラに渡す。また、FW制御ヘッダのrequestId/userIdの値をメッセージコンテキストに設定する。 | - | - | - |
-| トランザクション制御ハンドラ | nablarch.fw.common.handler.TransactionManagementHandler | Object | Object | 業務トランザクションの開始 | トランザクションをコミットする。 | トランザクションをロールバックする。 | 1.コミット完了後 / 2.ロールバック後 |
-
-**関連するハンドラ**
-
-応答電文の内容を編集する必要のあるハンドラは、全てこのハンドラの後続に配置する必要がある。
-
-| ハンドラ | 内容 |
-|---|---|
-| [メッセージングコンテキスト管理ハンドラ](../../component/handlers/handlers-MessagingContextHandler.md) | 本ハンドラでは、スレッドローカル上のメッセージングコンテキストを用いて 応答電文の送信を行なうので、本ハンドラより上位に配置する必要がある。 |
-| [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) | 同ハンドラとの前後関係は、2相コミットを使用するか否かで変わる。 **a)** 2相コミットを使用する場合。 DBトランザクションとJMSトランザクションをトランザクションマネージャー側で まとめてコミットするので、トランザクション制御ハンドラは、このハンドラより 先に実行されなければならない。 **b)** 2相コミットを使用しない場合。 このハンドラが応答を送信する前に、DBトランザクション終了させ、 業務処理の結果を確定させる必要がある。 このため、トランザクション制御ハンドラはこのハンドラの後に実行されなければならない。 |
-| [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) | 要求電文のフォーマット不正に起因する例外はデータリーダ上で発生する可能性がある。 そのエラー応答電文をこのハンドラで送信するためには、 [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) を本ハンドラの後続に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラの実行)**
-
-本ハンドラは往路において特段の処理を行なわずに後続のハンドラに処理を委譲し、
-その処理結果を取得する。
-
-**[復路処理]**
-
-**2. (応答電文オブジェクトの取得)**
-
-**1.** での処理結果の型が応答電文オブジェクト([ResponseMessage](../../javadoc/nablarch/fw/messaging/ResponseMessage.html)) であった場合は、
-処理結果を応答電文オブジェクトにキャストして以降の処理で用いる。
-
-**2a. (受信待機タイムアウト)**
-
-キュー上に取得対象電文が存在しないまま、データリーダが一定時間待機し続けた場合、 [DataReader.NoMoreRecord](../../javadoc/nablarch/fw/DataReader.NoMoreRecord.html) が返される。
-**1.** の処理結果がこの型であった場合は、応答処理は行なわずに、処理結果をそのままリターンして終了する。
-
-**2b. (処理結果タイプエラー)**
-
-**1.** での処理結果の型が、応答電文オブジェクトでも [DataReader.NoMoreRecord](../../javadoc/nablarch/fw/DataReader.NoMoreRecord.html) でも無かった場合は、
-実行時例外 (java.lang.ClassCastException) を送出する。
-
-**3. (処理結果コードの設定)**
-
-フレームワーク制御ヘッダ中の処理結果コードが未設定であった場合は、処理結果オブジェクトのステータスコードを設定する。
-
-**4. (メッセージ送信)**
-
-スレッドローカル上のメッセージコンテキストを使用して、応答電文オブジェクトの送信(応答キューへのPUT)を行なう。
-
-**5. (正常終了)**
-
-応答電文オブジェクトをリターンする。
-
-**5a. (エラー応答正常終了)**
-
-ただし、後続ハンドラの処理で例外が送出されていた場合( **2c.** )は、その例外を再送出する。
-
-**[例外処理]**
-
-**2c. (エラー応答電文作成)**
-
-後続ハンドラの処理中に実行時例外/エラーが発生した場合、
-エラー内容をもとに応答電文を作成し、それを **3.** 以降で使用する。
-なお、元例外は本ハンドラの処理終了時に再送出する。
-
-**4a. (応答電文送信エラー)**
-
-送信処理中に例外が送出された場合は、送信元に対する応答を断念し、例外を再送出して終了する。
-
-**4b. (エラー応答電文送信エラー)**
-
-送信処理中に例外が送出され、それ以前に、後続ハンドラの処理でも例外が送出されていた( **2c.** )場合、
-送信処理中に発生した例外についてはワーニングレベルのログとして出力した上で、
-**2c.** で捕捉していた例外を再送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラに設定項目は設けられていない。
-
-**標準設定**
-
-```xml
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessageResendHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessageResendHandler.md
deleted file mode 100644
index 3e43954f4..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessageResendHandler.md
+++ /dev/null
@@ -1,212 +0,0 @@
-## 再送電文制御ハンドラ
-
-**クラス名:** `nablarch.fw.messaging.handler.MessageResendHandler`
-
-### 概要
-
-応答電文の再送処理制御を行うハンドラ。
-
-一般に、外部システムに対する要求電文がタイムアウトした場合、
-再送要求電文や、取消電文といった補償電文を送信することがある。
-
-本ハンドラではこのうち、再送要求に対する制御をフレームワークレベルで実装している。
-初回電文/再送要求電文の判定は [フレームワーク制御ヘッダ](../../component/libraries/libraries-enterprise-messaging.md#基本概念) 上の **再送要求フラグ** の値を用いて行う。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| 電文応答制御ハンドラ | nablarch.fw.messaging.handler.MessageReplyHandler | Object | ResponseMessage | - | 後続ハンドラから返される応答電文オブジェクトの内容をもとに電文を作成して送信する。 | エラーオブジェクトの内容をもとに電文を作成して送信する。 | - |
-| データリードハンドラ(FW制御ヘッダリーダ/メッセージリーダ利用) | nablarch.fw.handler.DataReadHandler_messaging | Object | Result | 要求電文を受信しFW制御ヘッダ部を解析して要求電文オブジェクト(RequestMessage)を作成し後続のハンドラに渡す。また、FW制御ヘッダのrequestId/userIdの値をメッセージコンテキストに設定する。 | - | - | - |
-| トランザクション制御ハンドラ | nablarch.fw.common.handler.TransactionManagementHandler | Object | Object | 業務トランザクションの開始 | トランザクションをコミットする。 | トランザクションをロールバックする。 | 1.コミット完了後 / 2.ロールバック後 |
-| 再送電文制御ハンドラ | nablarch.fw.messaging.handler.MessageResendHandler | RequestMessage | ResponseMessage | 再送要求に対し、以前応答した電文が保存されていれば、その内容をリターンする。(後続ハンドラは実行しない) | 業務トランザクションが正常終了(コミット)された場合のみ電文を保存する | - | - |
-| 同期応答電文処理用業務アクションハンドラ | nablarch.fw.action.MessagingAction | RequestMessage | ResponseMessage | 要求電文の内容をもとに業務処理を実行する。 | 業務処理の結果と要求電文の内容から応答電文の内容を作成して返却する。 | - | トランザクションロールバック時にエラー応答電文を作成する。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [電文応答制御ハンドラ](../../component/handlers/handlers-MessageReplyHandler.md) | 本ハンドラの作成した再送電文オブジェクトは、 [電文応答制御ハンドラ](../../component/handlers/handlers-MessageReplyHandler.md) によって送信される。 |
-| [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) | 送信済み電文は、業務トランザクションと同じトランザクションでコミットするので、 [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) の後続にこのハンドラを配置する。 |
-| [同期応答電文送信処理用業務アクションハンドラのテンプレートクラス](../../component/handlers/handlers-MessagingAction.md) | 本ハンドラでは、業務アクションが応答した電文オブジェクトを応答済み電文テーブルに 保存する。 |
-
------
-
-**再送制御**
-
-本システムに対する処理要求メッセージ(初回電文)が、転送経路上のネットワークエラーや
-遅延により外部システム側でタイムアウトし、その補償電文として再送要求電文が送信されたとする。
-この際、再送要求電文を受信した時点でのシステムの状態は、以下の4つに分類できる。
-
-1. ネットワークエラーもしくは遅延により、初回電文が未受信。
-2. 初回電文を処理中。
-3. 初回電文に対する業務処理は正常終了(トランザクションをコミット)したが、
- ネットワークエラーもしくは遅延により応答電文が未達。
-4. 初回電文に対する業務処理が異常終了(トランザクションをロールバック)し、
- ネットワークエラーもしくは遅延によりエラー応答電文が未達。
-
-それぞれのケースについて、本システムの挙動は以下のようになる。
-
-1. 初回電文が未受信
- 再送要求電文を初回電文として処理する。
- この場合、再送要求電文を処理中に、遅延していた初回電文を並行実行する可能性があるが
- 先にコミットされたトランザクションのみ正常終了し、それ以外はロールバックする。
- また、ロールバックされた要求の応答として、先に正常終了した電文の応答を再送する。
-2. 本システムで初回電文を処理中
- 再送要求電文も初回電文として処理し、先に完了したトランザクションをコミットし、
- もう一方をロールバックする。
- (1.と同じ扱い。)
-3. 業務処理は正常終了したが応答電文が未達
- 再送用電文テーブルから当該メッセージIDの電文データを取得し、応答電文として送信する。
- 業務処理は実行されない。
-4. 業務処理が正常終了したがエラー応答電文が未達
- 再送要求電文を初回電文として処理する。
-
-本機能は大きく以下の2つの機能によって構成されている。
-
-**1. 再送応答機能**
-
-接続先システムから再送要求電文が送信された場合に、
-後述の送信済電文保存機能が保持する過去の応答電文の内容を再送信する機能。
-
-**2. 送信済電文保存機能**
-
-送信に成功した(=ローカルキューに対するPUT命令が完了した)メッセージの内容をデータベース上の
-送信済電文テーブルに保存する機能。
-送信済電文の内容は業務トランザクションとともにコミットされる。
-従って、業務処理がエラー終了した場合には再送用電文は残らない。
-
-再送電文管理テーブルのスキーマ構造として、以下のようなテーブル構造を想定している。
-
-| 論理名 | データ型 |
-|---|---|
-| メッセージID | VARCHAR PK |
-| リクエストID | VARCHAR PK |
-| 応答宛先キュー | VARCHAR |
-| 処理結果コード | VARCHAR |
-| 電文データ部 | BLOB |
-
-下にデフォルト設定でのテーブル名、カラム名に沿ったテーブルスキーマのサンプルを示す。
-
-```sql
-CREATE TABLE SENT_MESSAGE (
- MESSAGE_ID VARCHAR(64)
-, REQUEST_ID VARCHAR(64)
-, REPLY_QUEUE VARCHAR(64)
-, STATUS_CODE CHAR(4)
-, BODY_DATA BLOB
-, CONSTRAINT pk_SENT_MESSAGE
- PRIMARY KEY(MESSAGE_ID, REQUEST_ID)
-);
-```
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (再送要求フラグの取得)**
-
-要求電文のフレームワーク制御ヘッダ中の再送要求フラグ(resendFlag)を取得する。
-
-**1a. (再送要求フラグを使用しない電文のスキップ)**
-
-要求電文のフレームワーク制御ヘッダに再送要求フラグが定義されていなかった場合、
-本ハンドラではなにもせず、後続のハンドラに処理を移譲し、その結果を返して終了する。
-
-**2. (再送応答)**
-
-要求電文中のメッセージIDとリクエストIDをキーとして送信済電文テーブルを検索し、
-条件に合致する送信済電文が存在した場合は、その内容に沿って [ResponseMessage](../../javadoc/nablarch/fw/messaging/ResponseMessage.html) を作成し、
-それを返して終了する。この場合、後続ハンドラへの処理移譲は行なわずに折り返すため
-業務処理は実行されない。
-
-**2a. (初回電文の処理が未完→再送要求を初回電文として実行)**
-
-条件に合致する送信済電文が存在しない場合は、後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**3. (正常終了)**
-
-後続のハンドラから返された応答電文を送信済電文テーブルに保存した後、応答電文を返す。
-
-**[例外処理]**
-
-**3a. (並行に処理された電文の応答を再送)**
-
-応答電文を保存した際に、一意制約違反エラーが発生した場合は、並行するトランザクションによって
-既に正常終了しているため、送信済電文テーブルから応答電文を取得して返す。
-
-**3c. (エラー応答1)**
-
-一意制約違反エラーが発生したにも関わらず、送信済み電文テーブルに送信電文が登録されていない場合は、
-元例外を再送出する。(通常は発生しえない。)
-
-**4. (エラー応答2)**
-
-上記以外のケースで発生した実行時例外・エラーについては、このハンドラでは捕捉せず、
-上位のハンドラに再送出される。
-
-### 設定項目・拡張ポイント
-
-* **基本設定**
-
- 要求電文から再送要求フラグを取得する際にフレームワーク制御ヘッダー定義を使用するため、
- 必ず設定する必要がある。
- 下記の例では、フレームワーク標準のヘッダー定義を使用している。
-
- ```xml
-
-
-
-
-
-
-
-
-
- ```
-* **テーブル名、カラム名の変更**
-
- 命名規約や既存システムとの整合性の確保などの理由により、、
- デフォルト設定とは異なるテーブル名、カラム名を利用する必要がある場合は以下のように設定する。
-
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
- ```
-* **再送要求フラグ定義方法の変更**
-
- デフォルトの設定での再送要求フラグの仕様が、プロジェクトの要件に合致しない場合は、
- フレームワーク制御ヘッダー定義を拡張する必要がある。
-
- フレームワーク制御ヘッダー定義の拡張については、「フレームワーク制御ヘッダリーダ」の項を参照すること。
-
- ```xml
-
-
-
-
-
-
-
- ```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessagingAction.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessagingAction.md
deleted file mode 100644
index 5a1b5ef1d..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessagingAction.md
+++ /dev/null
@@ -1,102 +0,0 @@
-## 同期応答電文送信処理用業務アクションハンドラのテンプレートクラス
-
-**クラス名:** `nablarch.fw.action.MessagingAction`
-
------
-
-### 概要
-
-本クラスは、 [同期応答メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging-request-reply.md) における
-業務アクションハンドラを実装する際に使用するテンプレートクラスである。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| 同期応答電文処理用業務アクションハンドラ | nablarch.fw.action.MessagingAction | RequestMessage | ResponseMessage | 要求電文の内容をもとに業務処理を実行する。 | 業務処理の結果と要求電文の内容から応答電文の内容を作成して返却する。 | - | トランザクションロールバック時にエラー応答電文を作成する。 |
-
------
-
-本クラスを継承してアクションハンドラを実装するには、以下のテンプレートメソッドを必要に応じて実装する。
-
-| メソッド名 | 内容 |
-|---|---|
-| onReceive() | (必須実装) 本ハンドラの往路処理の中で呼ばれる。 要求電文オブジェクト( [RequestMessage](../../javadoc/nablarch/fw/messaging/RequestMessage.html) )の内容をもとに業務処理を実行し、 応答電文オブジェクト( [ResponseMessage](../../javadoc/nablarch/fw/messaging/ResponseMessage.html) )に応答電文の内容を格納してリターンする。 |
-| onError() | (任意実装) 業務トランザクションがロールバックされた時点で、 [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) からコールバックされる。 エラー応答電文を作成してリターンする。 オーバーライドしなかった場合は、FW制御ヘッダのみが設定された電文がエラー応答として 送信される。 |
-| usesAutoRead() | (任意実装) 要求電文のデータ部の読込みを自動で行うか否かを指定する。 要求電文のデータ部がマルチレコード/マルチフォーマット構成である場合は、 このメソッドをオーバーライドしてfalseをリターンすることで、 データ部の解析を手動で行うことができる。 |
-
-以下のソースコードは、フレームワークが本クラスの各テンプレートメソッドを
-どのタイミングで呼び出すかを表したものである。
-
-```java
-RequestMessage req;
-ResponseMessage res;
-ExecutionContext ctx;
-
-req = receive(); // (フレームワークが要求電文を受信)
-
-try {
- if ( usesAutoRead() ) {
- req.readRecord(); // 要求電文のデータ部からデータレコードを自動的に読み込む。
- // (主にシングルレコード形式の電文で使用する。)
- }
-
- res = onReceive(req, ctx); // 要求電文毎に呼ばれる。
- commit(); // (フレームワークが業務トランザクションをコミットする。)
-
-} catch(e) {
- rollback(); // (業務トランザクションをロールバックする。)
- res = onError(e, req, ctx); // 業務処理で例外が発生し、業務トランザクションが
- // ロールバックされた直後に呼ばれる。
- // エラー応答電文をリターンして返す。
-} finally {
- send(res); // (フレームワークが応答電文を送信)
-}
-```
-
-> **Note:**
-> このコードはあくまで説明用に単純化したものであり、実際の処理フローはこのようなロジックでは無く、
-> ハンドラ構成によって制御されており、全く別物である。
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (業務データ部の自動読み込み)**
-
-**usesAutoRead()** を実行し、その結果が **true** であった場合は、
-[RequestMessage](../../javadoc/nablarch/fw/messaging/RequestMessage.html) の **readRecord()** メソッドを呼び出し、
-要求電文内の業務データレコードの読み込みを行なう。
-
-ここで読み込まれたデータレコードの内容は、 **getParamMap()** 等のメソッドにより、
-レコードのフィールド名をキーとするMapとしてアクセスすることができる。
-
-**2. (業務ロジックの実行)**
-
-要求電文オブジェクトと実行コンテキストを引数として、 **onReceive()** メソッドを実行し、
-その結果(応答電文オブジェクト)を取得する。
-
-**[復路処理]**
-
-**3. (正常終了)**
-
-**2.** で作成した応答電文オブジェクトをリターンし終了する。
-
-**[例外処理]**
-
-**1a. (データ終端エラー)**
-
-要求電文内のデータレコードを読み込んだ時点で、データ部の終端に達しなかった場合は、
-実行時例外( [InvalidDataFormatException](../../javadoc/nablarch/core/dataformat/InvalidDataFormatException.html) )を送出する。
-
-> **Note:**
-> 電文内に複数のレコードが格納されうる場合は、 **usesAutoRead()** をオーバライドし、falseを返すこと。
-
-**[コールバック]**
-
-**4. (エラー応答電文の制御)**
-
-本ハンドラでの処理終了後、 [トランザクション制御ハンドラ](../../component/handlers/handlers-TransactionManagementHandler.md) で業務トランザクションがロールバックされた場合、
-**onError()** メソッドを実行し、その結果(エラー応答電文オブジェクト)を返す。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessagingContextHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessagingContextHandler.md
deleted file mode 100644
index 66df2c28a..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MessagingContextHandler.md
+++ /dev/null
@@ -1,84 +0,0 @@
-## メッセージングコンテキスト管理ハンドラ
-
-**クラス名:** `nablarch.fw.messaging.handler.MessagingContextHandler`
-
------
-
-### 概要
-
-メッセージングコンテキストの管理を行うハンドラ。
-
-リクエストスレッド毎にメッセージングコンテキスト初期化とスレッドローカル変数への格納、
-および終端処理を行う。
-メッセージングコンテキストをはじめとする、本フレームワークのメッセージング機能の内容については、
-[システム間メッセージング機能](../../component/libraries/libraries-enterprise-messaging.md) を参照すること。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| マルチスレッド実行制御ハンドラ | nablarch.fw.handler.MultiThreadExecutionHandler | Object | MultiStatus | サブスレッドを作成し、後続ハンドラの処理を並行実行する。 実行コンテキスト上にデータリーダが存在しない場合は、コールバックを行う。 | 全スレッドの正常終了まで待機する。 | 処理中のスレッドが完了するまで待機し起因例外を再送出する。 | 1. 処理開始前 / 2. データリーダ作成 / 3. スレッド異常終了時 / 4. 処理完了時 |
-| メッセージングコンテキスト管理ハンドラ | nablarch.fw.messaging.handler.MessagingContextHandler | Object | Object | メッセージングコンテキスト(MQ接続)を取得し、スレッドローカルに保持する。 | メッセージングコンテキストを開放する。(プールに戻す) | メッセージングコンテキストを開放する。(プールに戻す) | - |
-| 電文応答制御ハンドラ | nablarch.fw.messaging.handler.MessageReplyHandler | Object | ResponseMessage | - | 後続ハンドラから返される応答電文オブジェクトの内容をもとに電文を作成して送信する。 | エラーオブジェクトの内容をもとに電文を作成して送信する。 | - |
-| データリードハンドラ(FW制御ヘッダリーダ/メッセージリーダ利用) | nablarch.fw.handler.DataReadHandler_messaging | Object | Result | 要求電文を受信しFW制御ヘッダ部を解析して要求電文オブジェクト(RequestMessage)を作成し後続のハンドラに渡す。また、FW制御ヘッダのrequestId/userIdの値をメッセージコンテキストに設定する。 | - | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) (MessageReader使用時) | メッセージ受信処理では、 [受信電文リーダ](../../component/readers/readers-MessageReader.md) を使用して受信電文の読み込みを行うが、この際、 本ハンドラが初期化するメッセージングコンテキストを使用する。 そのため、 [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) は本ハンドラの後続に配置する必要がある。 |
-| [電文応答制御ハンドラ](../../component/handlers/handlers-MessageReplyHandler.md) | メッセージ応答処理で、本ハンドラが初期化するメッセージングコンテキストを 使用するため、 [電文応答制御ハンドラ](../../component/handlers/handlers-MessageReplyHandler.md) は、 本ハンドラの後続に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (メッセージングコンテキストの取得)**
-
-本ハンドラに設定された **メッセージングプロバイダ** からメッセージングコンテキストを取得する。
-
-**2. (メッセージングコンテキストをスレッドローカルに設定)**
-
-**1.** で取得したインスタンスを、スレッドローカルに保持する。
-
-**3. (後続ハンドラへの処理委譲)**
-
-ハンドラキュー上の後続ハンドラに対して処理を委譲し、その結果を取得する。
-
-**[復路での処理]**
-
-**4. (終端処理)**
-
-メッセージコンテキストをクローズすることで、使用していたメッセージングサーバへの接続をコネクションプールに返却し、
-スレッドローカル上からメッセージングコンテキストへの参照を除去する。
-
-**5. (正常終了)**
-
-**3.** での処理結果をリターンし、終了する。
-
-**[例外処理]**
-
-**3a. (終端処理)**
-
-本ハンドラ、および後続ハンドラの処理中に実行時例外/エラーが発生した場合でも、
-**4.** の終端処理を実行してからエラーを再送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-メッセージングプロバイダの設定については、 [システム間メッセージング機能](../../component/libraries/libraries-enterprise-messaging.md) を参照すること。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| メッセージングプロバイダ | messagingProvider | MessagingProvider | 必須指定 |
-
-**標準設定**
-
-```xml
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MultiThreadExecutionHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MultiThreadExecutionHandler.md
deleted file mode 100644
index fee2cd250..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MultiThreadExecutionHandler.md
+++ /dev/null
@@ -1,134 +0,0 @@
-## マルチスレッド実行制御ハンドラ
-
-**クラス名:** `nablarch.fw.MultiThreadExecutionHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラでは、サブスレッドを作成し、ハンドラキュー上の後続ハンドラの処理を各サブスレッド上で並行実行することができる。
-このハンドラでの処理結果は、各サブスレッドでの実行結果を集約したオブジェクト([Result.MultiStatus](../../javadoc/nablarch/fw/Result.MultiStatus.html))となる。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| マルチスレッド実行制御ハンドラ | nablarch.fw.handler.MultiThreadExecutionHandler | Object | MultiStatus | サブスレッドを作成し、後続ハンドラの処理を並行実行する。 実行コンテキスト上にデータリーダが存在しない場合は、コールバックを行う。 | 全スレッドの正常終了まで待機する。 | 処理中のスレッドが完了するまで待機し起因例外を再送出する。 | 1. 処理開始前 / 2. データリーダ作成 / 3. スレッド異常終了時 / 4. 処理完了時 |
-
-**コールバック**
-
-下記の抽象クラス/インターフェースを後続のハンドラで継承/実装することにより、本ハンドラ実行中にコールバックを受けることができる。
-
-| 抽象クラス/インターフェース | メソッド | イベント |
-|---|---|---|
-| [BatchActionBase](../../javadoc/nablarch/fw/action/BatchActionBase.html) | initialize | マルチスレッド実行開始前一度だけ呼ばれる。 |
-| | error | サブスレッドのいずれかが異常終了(未捕捉の実行時例外またはエラーを送出) した場合に一度だけ呼ばれる。 |
-| | terminate | サブスレッド上の処理完了後に一度だけ呼ばれる。 (異常終了時では、error後に呼ばれる。) |
-| [DataReaderFactory](../../javadoc/nablarch/fw/DataReaderFactory.html) | createReader | 実行コンテキスト上にデータリーダが設定されていなかった場合は、 BatchActionBase#initialize() の呼び出し直後に一度だけ呼ばれる。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [バッチ処理用業務アクションハンドラのテンプレートクラス](../../component/handlers/handlers-BatchAction.md) | バッチアクションでは、本ハンドラのコールバックを利用することで、 バッチの初期処理及び終了処理を実装している。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (並行実行スレッド数をスレッドコンテキストに登録)**
-
-このハンドラに設定されている **並行実行スレッド数** をスレッドコンテキストの属性値として登録する。
-この値は後続処理において、シングルスレッド環境でしか利用できない機能の実行可否を判定する際に参照する。
-
-**2. (コールバック呼び出し)**
-
-後続ハンドラの内、 **BatchActionBase** を継承しているものについて、下記のコールバックを呼び出す。:
-
-```
-BatchActionBase#initialize(Object data, ExecutionContext context): Object
-```
-
-**3. (データリーダを取得)**
-
-サブスレッドで使用するデータリーダを実行コンテキスト([ExecutionContext](../../javadoc/nablarch/fw/ExecutionContext.html))から取得する。
-データリーダが実行コンテキストに設定されていなかった場合は、データリーダファクトリを使用して
-データリーダを作成する。
-
-**3a. (データリーダ未設定エラー)**
-
-実行コンテキスト上にデータリーダ及びデータリーダファクトリのいずれも設定されていなかった場合、
-実行時例外([IllegalStateException](http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalStateException.html))を送出する。
-
-**4. (実行コンテキストのコピー)**
-
-各サブスレッドで使用する実行コンテキストを、現在の実行コンテキストをもとに作成する。
-この際、実行コンテキストの各属性は以下のように複製される。
-
-| 属性名 | データ型 | コピーされる内容 |
-|---|---|---|
-| ハンドラキュー | List<[Handler](../../javadoc/nablarch/fw/Handler.html) > | 現在のListのシャローコピーを作成する。 従って、各ハンドラはスレッドセーフに作成される必要がある。 |
-| リクエストコンテキスト | Map | 新規のMapを作成する。 メインスレッド側の変数はサブスレッドに引き継がれない。 |
-| セッションコンテキスト | Map | 現在のセッションスコープのMapをそのまま設定する。 各サブスレッドは、単一のMapを共有する。 |
-| データリーダ | [DataReader](../../javadoc/nablarch/fw/DataReader.html) | 現在のデータリーダをそのまま設定する。 |
-| データリーダファクトリ | [DataReaderFactory](../../javadoc/nablarch/fw/DataReaderFactory.html) | 現在のファクトリをそのまま設定する。 |
-
-**5. (サブスレッドの作成と実行)**
-
-サブスレッドを作成し実行する。
-各サブスレッドでは、 **4.** で作成した実行コンテキスト中のハンドラキューに処理を委譲し、その結果をサブスレッドの実行結果として
-メインスレッドに返す。
-メインスレッドは全てのサブスレッドが終了するまで待機する。
-
-**[復路処理]**
-
-**6. (コールバック呼び出し)**
-
-後続ハンドラの内、 **BatchActionBase** を継承しているものについて、下記のコールバックを呼び出す。:
-
-```
-BatchActionBase#terminate(Object data, ExecutionContext context): Object
-```
-
-**7. (正常終了)**
-
-各サブスレッドの処理結果を [Result.MultiStatus](../../javadoc/nablarch/fw/Result.MultiStatus.html) に追加してリターンする。
-
-**[例外処理]**
-
-**5a. (サブスレッドが異常終了)**
-
-サブスレッド上のいずれかが異常終了(=未捕捉の実行時例外またはエラーを送出)した場合、
-後続ハンドラの内、 **BatchActionBase** を継承しているものについて、下記のコールバックを呼び出す。:
-
-```
-BatchActionBase#error(Throwable e, ExecutionContext context): void
-```
-
-次に、現在実行中の各サブスレッド対して割り込み要求をおこなった上で、
-全サブスレッドが完了するか、 **スレッド停止タイムアウト** を経過するまで待機する。
-最後に **6.** のコールバックを呼び出した上で、起因例外を再送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 並行実行スレッド数 | concurrentNumber | int | デフォルト値は1 |
-| スレッド停止のタイムアウト秒数 | terminationTimeout | int | デフォルト値は600(秒) |
-
-**基本設定**
-
-以下は標準的なスレッドコンテキストの設定例である。
-並行実行スレッド数は、運用時に値を変更する可能性が高い為、
-埋め込みパラメータとして定義することを推奨する。
-
-```xml
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MultipartHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MultipartHandler.md
deleted file mode 100644
index c806b88b1..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-MultipartHandler.md
+++ /dev/null
@@ -1,133 +0,0 @@
-## マルチパートリクエストハンドラ
-
-**クラス名:** `nablarch.fw.web.upload.MultipartHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラは、HTTPリクエストボディがマルチパート形式であった場合にその内容を解析し、一時ファイルに保存する。
-保存されたファイルは、アップロード用ユーティリティを使用することで、業務アクションハンドラから参照することが可能となる。
-
-
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 |
-| HTTPエラー制御ハンドラ | nablarch.fw.web.handler.HttpErrorHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容が設定されていない場合は、ステータスコードに応じたデフォルトページを遷移先に設定する。 | 送出されたエラーに応じた遷移先のHTTPレスポンスオブジェクトを返却する。送出されたエラーはリクエストスコープに設定される。 |
-| マルチパートリクエストハンドラ | nablarch.fw.web.upload.MultipartHandler | HttpRequest | HttpResponse | HTTPリクエストボディがマルチパート形式であった場合にその内容を解析し、一時ファイルに保存する。 | アップロードされた一時ファイルを全て削除する。 | アップロードされた一時ファイルを全て削除する。 |
-| Nablarchカスタムタグ制御ハンドラ | nablarch.common.web.handler.NablarchTagHandler | HttpRequest | HttpResponse | Nablarchカスタムタグの動作に必要な事前処理を実施する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [HTTPエラー制御ハンドラ](../../component/handlers/handlers-HttpErrorHandler.md) | 本ハンドラでは、アップロードされたファイルが許容上限サイズを越えた場合などに 例外が送出される可能性があるので、 [HTTPエラー制御ハンドラ](../../component/handlers/handlers-HttpErrorHandler.md) の後続に配置し、 適切なエラー画面が表示されるようにする必要がある。 |
-| [Nablarchカスタムタグ制御ハンドラ](../../component/handlers/handlers-NablarchTagHandler.md) | このハンドラでは、HTTPリクエストオブジェクトのリクエストパラメータを使用するので、 POSTパラメータの解析の際にリクエストボディが読み込まれる。 そのため、本ハンドラを [Nablarchカスタムタグ制御ハンドラ](../../component/handlers/handlers-NablarchTagHandler.md) よりも上位に配置する必要がある。 |
-
-> **Note:**
-> 一般に、HTTPリクエストのリクエストボディの読みこみを行うハンドラは、必ず [マルチパートリクエストハンドラ](../../component/handlers/handlers-MultipartHandler.md)
-> の後続に配置する必要がある。
-
-> 具体的には、 [HTTPアクセスログハンドラ](../../component/handlers/handlers-HttpAccessLogHandler.md) を拡張し、特定のリクエストパラメータを出力するケースや、
-> [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) にリクエストパラメータの内容に依存したカスタムの属性を追加するようなケースがこれに該当する。
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (非マルチパートリクエストのスキップ)**
-
-HTTPリクエストのCONTENT-TYPEヘッダー値を取得し、 **"multipart/form-data"** に一致しない場合は、
-このハンドラでは何もせずに、後続のハンドラの実行結果をリターンして終了する。
-
-**2. (マルチパートリクエストの解析)**
-
-HTTPリクエストオブジェクトのメッセージボディを読み込み、マルチパートの解析を行い、アップロードされたファイルを
-一時ファイルとして保存する。
-保存先は、論理パス名 **"uploadFileTmpDir"** に設定されたパスとなる。
-また、論理パスが設定されていない場合は、OS標準の一時ファイル保存先(Javaシステムプロパティ **"java.io.tmpdir"** の値)となる。
-
-解析結果は、HTTPリクエストオブジェクト自体に格納され、アップロードファイルに関する情報は [HttpRequest.getPart()](../../javadoc/nablarch/fw/web/HttpRequest.html#getPart(java.lang.String)) で取得できる。
-また、アップロードファイル以外のパラメータについては、通常どおり [HttpRequest.getParam()](../../javadoc/nablarch/fw/web/HttpRequest.html#getParam(java.lang.String)) 等で取得できる。
-
-**3. (ログ出力)**
-
-アップロードされたファイルに関する情報をログに出力する。(INFOレベル)
-
-**4. (後続ハンドラに対する処理委譲)**
-
-ハンドラキュー上の後続ハンドラに対して処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**5. (終端処理)**
-
-アップロードされた一時ファイルを全て削除する。
-
-**6. (正常終了)**
-
-**4.** の結果をリターンして終了する。
-
-**2a. (マルチパート形式エラー)**
-
-アップロード中に、接続が切断されるなどの事由により、読み込んだリクエストボディの内容がマルチパートフォーマットに反した場合は、
-実行時例外 [Result.BadRequest](../../javadoc/nablarch/fw/Result.BadRequest.html) を送出して終了する。(ステータスコード400)
-
-**2b. (アップロード上限超過エラー)**
-
-読み込んだデータのサイズが本ハンドラに設定されたアップロードサイズの上限値を超過した場合は、
-実行時例外 [Result.BadRequest](../../javadoc/nablarch/fw/Result.BadRequest.html) を送出して終了する。(ステータスコード413)
-
-**[例外処理]**
-
-**4a. (終端処理)**
-
-後続ハンドラの処理中に何らかの例外が発生した場合は、 **5.** の終端処理を実行し、例外を再送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定値は、 [UploadSettings](../../javadoc/nablarch/fw/web/upload/UploadSettings.html) に集約されており、その内容は以下の通りである。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| アップロードサイズ上限 | contentLengthLimit | int | 任意設定。(単位:バイト) 1リクエストでアップロードできるデータの上限値 (ファイルサイズの上限ではない。) デフォルトは無制限。 |
-| 一時ファイル自動削除の実施有無 | autoCleaning | boolean | 任意指定。デバッグや障害解析用に無効化する。 デフォルトはtrue(自動削除を実施) > **Note:** > 一時ファイル保存中に例外が発生した場合には、 > 自動削除の設定がオフの場合でもファイルを削除する。 > これにより、不正な状態のファイル(空ファイルや途中まで > 保存されたファイル)が作成されることを防ぐことが出来る。 > ※一時ファイルが正常に保存でき、後続のハンドラに処理が > 移譲できた場合には、自動削除がオンの場合のみファイルを削除する。 |
-
-**基本設定**
-
-アップロードサイズの上限値を定めておくことを強く推奨する。
-また、上限値はユーザ要望等の事由によって変更になる可能性があるので、設定パラメータとして外部化しておくこと。
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-**アップロードファイルの一時保存先の設定**
-
-アップロードされたファイルの一時保存先を指定する場合は、論理パス名 **"uploadFileTmpDir"** を使用すること。
-保存先のパスは環境依存値となるので、設定パラメータとして外部化しておくこと。
-
-```xml
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NablarchServletContextListener.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NablarchServletContextListener.md
deleted file mode 100644
index 5dc9d49ae..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NablarchServletContextListener.md
+++ /dev/null
@@ -1,69 +0,0 @@
-## Nablarchサーブレットコンテキスト初期化リスナ
-
-**クラス名:** `nablarch.fw.web.servlet.NablarchServletContextListener`
-
------
-
-### 概要
-
-このクラスはサーブレットコンテキストの初期化時(デプロイ時)に呼ばれ、
-リポジトリの初期化処理を行う。
-また、ログの初期化処理および終端処理を行う。
-
-特に、画面オンライン処理における、ハンドラキュー構成とハンドラキューの起点となる
-サーブレットフィルタ [Webフロントコントローラ (サーブレットフィルタ)](../../component/handlers/handlers-WebFrontController.md) の初期化はここで行われる。
-
-> **Note:**
-> このクラスはハンドラでは無いが、ハンドラ構成を説明する都合上ここであわせて解説する。
-
------
-
-**処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| Nablarchサーブレットコンテキスト初期化リスナ | nablarch.fw.web.servlet.NablarchServletContextListener | - | - | サーブレットコンテキスト初期化時に、リポジトリおよびハンドラキューの初期化処理を行う。 | - | Fatalログを出力した上で再送出する。(デプロイエラーになる。) |
-| Webフロントコントローラ (サーブレットフィルタ) | nablarch.fw.web.servlet.WebFrontController | ServletRequest/Response | - | HttpServletRequest/HttpServletResponseからHTTPリクエストオブジェクトを作成し、ハンドラキューに処理を委譲する。 | (Webコンテナ側に制御を戻す。) | このハンドラでは例外およびエラーの捕捉は行なわず、そのまま送出する。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [Webフロントコントローラ (サーブレットフィルタ)](../../component/handlers/handlers-WebFrontController.md) | 本クラスが初期化するリポジトリ内に、このサーブレットフィルタが オブジェクトキー名 **webFrontController** で定義されている必要がある。 |
-
-### 設定項目・拡張ポイント
-
-本クラスは、サーブレットコンテキストリスナとしてデプロイし、
-コンテキスト初期化時に以下のコンテキスト変数を参照する。
-
-| 変数名 | 設定内容 |
-|---|---|
-| di.config (必須) | リポジトリの設定ファイルのパスを設定する。 設定ファイルは基本的にクラスパスリソースから検索されるが、 **“file://“** から始まるパスを設定することでローカルファイルシステム上の ファイルを検索できる。 |
-| di.duplicate-definition-policy | リポジトリの設定ファイル読み込み時に、 設定値の上書き設定が検出された際の動作ポリシーを設定する。 設定すべき値の詳細については、 [リポジトリ](../02_FunctionDemandSpecifications/01_Core/02_Repository.html) を参照。 設定しなかった場合、OVERRIDE。 |
-
-以下は **web.xml** の設定例である。
-
-```xml
-
-
-
- di.config
- web-component-configuration.xml
-
-
-
- nablarch.fw.web.servlet.NablarchServletContextListener
-
-
-
- controller
- nablarch.fw.web.servlet.RepositoryBasedWebFrontController
-
-
-
- controller
- /*
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NablarchTagHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NablarchTagHandler.md
deleted file mode 100644
index ae8351259..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NablarchTagHandler.md
+++ /dev/null
@@ -1,134 +0,0 @@
-## Nablarchカスタムタグ制御ハンドラ
-
-**クラス名:** `nablarch.common.web.handler.NablarchTagHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラは、本フレームワークが提供するカスタムタグと連動し、ウィンドウスコープをはじめとする
-各種機能を実現するハンドラである。
-
-カスタムタグの詳細については、以下を参照すること。
-
-* [JSPカスタムタグライブラリ](../../component/libraries/libraries-07-WebView.md)
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| マルチパートリクエストハンドラ | nablarch.fw.web.upload.MultipartHandler | HttpRequest | HttpResponse | HTTPリクエストボディがマルチパート形式であった場合にその内容を解析し、一時ファイルに保存する。 | アップロードされた一時ファイルを全て削除する。 | アップロードされた一時ファイルを全て削除する。 |
-| Nablarchカスタムタグ制御ハンドラ | nablarch.common.web.handler.NablarchTagHandler | HttpRequest | HttpResponse | Nablarchカスタムタグの動作に必要な事前処理を実施する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [マルチパートリクエストハンドラ](../../component/handlers/handlers-MultipartHandler.md) | 本ハンドラでは、POSTパラメータの内容を使用するためにリクエストボディを読み込む。 そのため、本ハンドラを [Nablarchカスタムタグ制御ハンドラ](../../component/handlers/handlers-NablarchTagHandler.md) の後続に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (内部フォーワードによる重複実行スキップ)**
-
-内部フォーワードによる再実行であった場合は、本ハンドラでの処理を行わずに、
-後続ハンドラに処理を委譲し、その結果をリターンして終了する。
-
-**2. (Nablarchカスタムタグ向け処理の実行)**
-
-以下の処理を実行する。
-
-* ボタン又はリンク毎のパラメータ変更機能を実現するために、リクエストに変更パラメータを設定する。
-* リクエストにcheckboxタグのチェックなしに対応する値を設定する。
-* hiddenタグの暗号化機能に対応する改竄チェックと復号を行う。
-* HTTPアクセスログのリクエストパラメータを出力する。
-* カスタムタグのデフォルト値をJSPで参照できるように、 [CustomTagConfig](../../javadoc/nablarch/common/web/tag/CustomTagConfig.html) をリクエストスコープに設定する。
- 設定可能なデフォルト値の詳細は [NablarchTagHandlerの設定](../../component/libraries/libraries-07-HowToSettingCustomTag.md#nablarchtaghandlerの設定) の項を参照すること。
-
-> **Note:**
-> 改竄チェックと復号は、カスタムタグのデフォルト値設定において、
-> hiddenタグの暗号化機能を「使用する」に設定している場合のみ処理を行う。
-
-**2a. (Hidden項目改竄)**
-
-復号されたHidden項目内のチャレンジコードがセッション上に格納されたものと一致しなかった場合は、
-INFOレベルのログを出力したのち、本ハンドラに設定されたエラー遷移先/ステータスコードを指定した
-HTTPエラーレスポンスを送出する。
-
-**3. (後続ハンドラに対する処理委譲)**
-
-ハンドラキュー上の後続ハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**4. (正常終了)**
-
-**3.** で取得した処理結果をリターンして終了する。
-
-**[例外制御]**
-
-**3a. (後続ハンドラでのエラー)**
-
-後続ハンドラ実行中にエラーが発生した場合は、そのまま再送出して終了する。
-
------
-
-### 改竄検知の判定について
-
-本ハンドラは下記順序でリクエストの改ざんを検知する。
-
-1. リクエストが HTTP POST 以外で送信されていた場合、改竄エラーとして処理する。
-2. セッションからウィンドウスコープの暗号化に使用する鍵を取得。
- (セッションから鍵が取得できなかった場合、改竄エラーまたはセッション無効化時エラーとして処理する。)
-3. ウィンドウスコープに保持するデータをセッションに保持した鍵を使用して複合する。
- リクエストパラメータからウィンドウスコープの値が取得出来なかった場合、複合に失敗した場合は改竄エラーとして処理する。
-4. 複合したデータに含まれるデータのハッシュ値を、複合したデータのハッシュ値と比較して複合したデータが有効であるか判定する。
- ハッシュ値が一致しなかった場合、改竄エラーとして処理する。
-5. ウィンドウスコープに保持する値から、前画面で表示したJSPから遷移できるリクエストIDを全て取得し、処理中のリクエストのリクエストIDと比較する。
- 処理中のリクエストのリクエストIDが、前画面から遷移可能なリクエストIDに含まれていなかった場合は改竄エラーとして処理する。
-
-NablarchTagHandler の判定条件が上記の通りであるため、本フレームワークを使用した場合、実際に悪意あるユーザが改竄したリクエストを送信した場合に
-加えて下記のケースも改竄エラーとして処理される。
-
-* セッションから暗号化に使用する鍵が取得できなかった場合。
- このケースには、ユーザが長時間アプリケーションを使用しなかったことで、セッションが無効になったケースや、ログアウト後に
- 別ウィンドウに表示されたボタンを押下してリクエストを送信した場合なども含まれる。(ただしこの場合は、 sessionExpirePath を
- 設定してあれば sessionExpirePath で指定したフォワード先を使用できる。
-* 改竄検知対象のリクエストIDの画面リクエストを URL 直接指定した場合。
- このケースには、画面のブックマークを含む。
-* 前画面で Nablarch のカスタムタグで作成したサブミットボタン押下以外の方法でリクエストパラメータをPOSTした場合。
- これは、改竄以外にアプリケーションバグで発生しうる。
-
-このため、改竄エラー時のエラー画面設計時は、上記事象が発生した際に表示されてもユーザにとって意味のあるエラー画面を設定する必要がある。
-通常改竄エラーは、実際に改竄を行ったユーザに対して通知する必要がないため、基本的にはエラー画面には下記いずれかが発生したことを伝える
-メッセージを表示すればよい。
-
-* 既にログアウトしたか、長期間使用しないためにログアウトしてしまった。
-* 正しくない画面遷移が行われた。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定値は以下の通り。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 改竄エラー画面パス | path | String | (必須指定) hidden項目の改竄を検知した場合に送信する 画面のリソースパス。 改竄の判定基準は [改竄検知の判定について](../../component/handlers/handlers-NablarchTagHandler.md#改竄検知の判定について) に記載した通り。 |
-| 改竄エラーステータスコード | statusCode | int | (任意指定: デフォルト=400) 改竄を検知した場合のレスポンスステータス。 |
-| セッション無効化時エラー画面パス | sessionExpirePath | String | (任意指定: デフォルト=path に指定した値) セッションが無効化されていた際に遷移する 画面のリソースパス。 指定しなかった場合、 path と同じ |
-| セッション無効化時エラーステータスコード | sessionExpireStatusCode | int | (任意指定: デフォルト=400) セッションが無効化されていた場合の レスポンスステータス。 |
-
-NablarchTagHandlerの設定例を下記に示す。
-
-```xml
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NoInputDataBatchAction.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NoInputDataBatchAction.md
deleted file mode 100644
index e05c733b6..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-NoInputDataBatchAction.md
+++ /dev/null
@@ -1,107 +0,0 @@
-## 入力データを使用しないバッチ処理用業務アクションハンドラのテンプレートクラス
-
-**クラス名:** `nablarch.fw.action.NoInputDataBatchAction`
-
------
-
-### 概要
-
-このクラスは [都度起動バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-batch-single-shot.md) において、
-一括データ削除を行うクリーニングバッチのように、単発の処理を実行するバッチを実装する場合に使用する
-アクションハンドラのテンプレートクラスである。
-
-具体的には、一度だけダミー読込みを行うデータリーダを使用することにより、
-一回だけアクションハンドラの処理を実行させるようにする。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| 単発バッチ処理用業務アクションハンドラ | nablarch.fw.action.NoInputDataBatchAction | SqlRow | Result | データリーダが読み込んだ1件分のデータレコードを入力として業務処理を実行する。 | 処理結果オブジェクトを返す。(通常はResult.Successを返す) | - | 一度だけダミー読込みを行うデータリーダを作成して返す。 |
-
------
-
-本クラスを継承してアクションハンドラを実装するには、以下のテンプレートメソッドを必要に応じて実装する。
-
-| メソッド名 | 内容 |
-|---|---|
-| handle() | (必須実装) このアクションハンドラで実行する業務処理を実装する。 [バッチ処理用業務アクションハンドラのテンプレートクラス](../../component/handlers/handlers-BatchAction.md) とは異なり、データリーダーを使用せず、常に1度だけ呼ばれる。 なお、引数は実行コンテキストのみとなる。(オーバーロード) |
-| initialize() | (任意実装) バッチ処理の開始前に一度だけ呼ばれる。 デフォルトでは何もしない。 |
-| error() | (任意実装) 実行時例外/エラーの発生によってバッチがエラー終了した場合に 一度だけコールバックされる。 デフォルトでは何もしない。 |
-| terminate() | (任意実装) バッチ処理が全件終了もしくはエラーにより終了した後で 一度だけコールバックされる。 デフォルトでは何もしない。 |
-
-以下のソースコードは、フレームワークが本クラスの各テンプレートメソッドを
-どのタイミングで呼び出すかを表したものである。
-
-```java
-CommandLine command; // バッチ起動時のコマンドライン
-ExecutionContext ctx; // 実行コンテキスト
-
-initialize(command, ctx); // バッチ処理開始前に一度だけ呼ばれる。
-
-Result result = null;
-
-try {
- result = handle(ctx); // 業務処理を実行。
- commit(); // 業務トランザクションをコミット
-
-} catch(e) {
- rollback(); // 業務トランザクションをロールバック
- error(e, ctx); // バッチがエラー終了した場合に、一度だけ呼ばれる。
-
-} finally {
- terminate(result, ctx) // バッチが終了した後、一度だけ呼ばれる。
-}
-```
-
-> **Note:**
-> このコードはあくまで説明用に単純化したものであり、実際の処理フローはこのようなロジックでは無く、
-> ハンドラ構成によって制御されており、全く別物である。
-
-### ハンドラ処理フロー
-
-**[コールバック]**
-
-**1. (バッチ処理開始前初期処理)**
-
-[マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) での処理開始時に **initialize()** を実行する。
-
-**2. (データリーダ生成)**
-
-続いて、 [マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) のコールバックで、ダミーのデータリーダを作成して返す。
-このデータリーダでは、1度だけダミーの読込みを行い、それ以降はデータリーダがクローズされた場合と同じ動作となる。
-
-これにより、アクションハンドラが1度だけ実行されるようにする。
-
-**[往路処理]**
-
-**3. (業務処理を実行)**
-
-業務処理を実行する。
-
-**[復路処理]**
-
-**4. (正常終了)**
-
-正常終了を表すマーカオブジェクト( [Result.Success](../../javadoc/nablarch/fw/Result.Success.html) ) をリターンする。
-
-**[例外処理]**
-
-**4a. (エラー終了)**
-
-業務処理に失敗した場合は、実行時例外を送出する。
-
-**[コールバック]**
-
-**5. (バッチエラー終了時)**
-
-[マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) でバッチ処理実行用のサブスレッドがエラーにより停止した場合、
-本ハンドラの **error()** を実行する。
-
-**6. (バッチ終了時)**
-
-[マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) でバッチ処理実行用のサブスレッドが終了した場合、
-本ハンドラの **terminate()** を実行する。
-(このコールバックは、バッチがエラー終了した場合でも、 **6.** の処理の後で呼ばれる。)
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-PermissionCheckHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-PermissionCheckHandler.md
deleted file mode 100644
index 6d78f0d75..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-PermissionCheckHandler.md
+++ /dev/null
@@ -1,107 +0,0 @@
-## 認可制御ハンドラ
-
-**クラス名:** `nablarch.common.handler.PermissionCheckHandler`
-
------
-
------
-
-### 概要
-
-リクエストIDを単位とした認可判定を行うハンドラ。
-
-また、認可通過以降は、認可関連情報をスレッドコンテキスト経由で取得することができる。
-認可機能の詳細については、 [認可](../../component/libraries/libraries-04-Permission.md) の章を参照すること。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| スレッドコンテキスト変数設定ハンドラ(リクエストスレッド) | nablarch.common.handler.ThreadContextHandler_request | Object | Object | 前のループで設定されたスレッドコンテキスト変数をクリアするためここで再初期化する。 | - | - |
-| 内部フォーワードハンドラ | nablarch.fw.web.handler.ForwardingHandler | HttpRequest | HttpResponse | - | 遷移先に内部フォーワードパスが指定されていた場合、HTTPリクエストオブジェクトのリクエストURIを内部フォーワードパスに書き換えた後、後続のハンドラを再実行する。 | - |
-| 認可制御ハンドラ | nablarch.fw.common.handler.PermissionCheckHandler | Object | Object | スレッドコンテキスト上の userId/requestId をもとに認可判定を行う。認可判定に失敗した場合は例外を送出して終了する。成功した場合は、認可情報オブジェクトをスレッドローカルに設定する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | 本ハンドラではスレッドコンテキスト上に設定されたリクエストID/ユーザIDをもとに 認可判定を行なうため、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) を本ハンドラの上位に配置する必要がある。 |
-| [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) | [画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) において、内部フォーワードを行った際の認可判定を フォーワード先のリクエストID ([内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理)) で行う場合、 本ハンドラは [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) より下位に配置する必要がある。 |
-| [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) | [メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging.md) では、 [要求電文(FWヘッダ)リーダ](../../component/readers/readers-FwHeaderReader.md) が受信電文中のフレームワークヘッダ部を解析する際に、 **requestId** および **userId** ヘッダの値をスレッドコンテキストに設定する。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (リクエストIDの取得)**
-
-スレッドコンテキストから [リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストの識別と業務処理の実行) もしくは
-[内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理) を取得する。
-
-**1a. (認可処理のスキップ)**
-
-**1.** 取得したリクエストIDの値が、本ハンドラに設定された **認可対象外リクエストIDリスト** に含まれている場合、
-本ハンドラではそれ以上の処理を行なわず、後続ハンドラに処理を委譲し、その結果をリターンして終了する。
-
-**2. (ユーザIDの取得)**
-
-スレッドコンテキストからユーザIDを取得する。
-
-**3. (認可情報取得)**
-
-本ハンドラに設定された **認可情報取得コンポーネント** を用いて、 **2.** で取得したユーザIDに対する
-認可情報を取得する。
-
-**4. (認可判定)**
-
-**1.** で取得したリクエストIDが **2.** で取得した認可情報に含まれていることを確認し、
-認可情報をスレッドローカルに格納する。
-
-**4a. (認可エラー)**
-
-**1.** で取得したリクエストIDが **2.** で取得した認可情報に含まれていなかった場合は、
-後続のハンドラの処理を実行せずに、実行時例外 [Result.Forbidden](../../javadoc/nablarch/fw/Result.Forbidden.html) を送出して終了する。
-
-**5. (後続ハンドラの実行)**
-
-後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[往路での処理]**
-
-**6. (正常終了)**
-
-**5.** で取得した処理結果をリターンし終了する。
-
-**[例外処理]**
-
-**5a. (後続ハンドラの処理でエラー)**
-
-後続ハンドラの実行中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-**認可情報取得コンポーネント** の設定については
-[認可](../../component/libraries/libraries-04-Permission.md) の章を参照すること。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 認可情報取得コンポーネント | permissionFactory | PermissionFactorry | 必須指定 |
-| 認可判定対象外リクエストIDリスト | ignoreRequestIds | String[] | 任意指定(デフォルトは空のリスト) |
-| 内部リクエストIDによる判定を行うかどうか | usesInternalRequestId | boolean | 任意指定(デフォルト=false) |
-
-**標準設定**
-
-以下は [画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) における本ハンドラの設定例である。
-[画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) では
-**認可判定対象外リクエストIDリスト** にログイン画面に対するリクエストIDを設定する必要がある。
-
-```xml
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ProcessResidentHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ProcessResidentHandler.md
deleted file mode 100644
index 8fff47bdb..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ProcessResidentHandler.md
+++ /dev/null
@@ -1,114 +0,0 @@
-## プロセス常駐化ハンドラ
-
-**クラス名:** `nablarch.fw.handler.ProcessResidentHandler`
-
------
-
------
-
-### 概要
-
-後続のハンドラキューの内容を一定間隔毎に繰り返し実行するハンドラ。
-本ハンドラは、特定のデータソース上の入力データを定期的に監視してバッチ処理を行う、
-いわゆる常駐起動型のバッチ処理で用いられる。
-
-> **Note:**
-> 本ハンドラと [リクエストスレッド内ループ制御ハンドラ](../../component/handlers/handlers-RequestThreadLoopHandler.md) の責務は似通っているが、
-> [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) ではメインスレッド上でのループ制御を行い、
-> [リクエストスレッド内ループ制御ハンドラ](../../component/handlers/handlers-RequestThreadLoopHandler.md) は各サブスレッド上でのループ制御を行うという違いから
-> 例外制御のポリシーなどの面で挙動が大きく異なっており、共用はできない。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| リトライ制御ハンドラ | nablarch.fw.handler.RetryHandler | Object | Object | - | - | リトライ可能な実行時例外を捕捉し、かつリトライ上限に達していなければ後続のハンドラを再実行する。 |
-| プロセス常駐化ハンドラ | nablarch.fw.handler.ProcessResidentHandler | Object | Object | データ監視間隔ごとに後続処理を繰り返し実行する。 | ループを継続する。 | ログ出力を行い、実行時例外が送出された場合はリトライ可能例外にラップして送出する。エラーが送出された場合はそのまま再送出する。 |
-| 処理停止制御ハンドラ | nablarch.fw.handler.ProcessStopHandler | Object | Object | リクエストテーブル上の処理停止フラグがオンであった場合は、後続の処理は行なわずにプロセス停止例外(ProcessStop)を送出する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [プロセス停止制御ハンドラ](../../component/handlers/handlers-ProcessStopHandler.md) | 本ハンドラを組み込んだハンドラキューは、シグナル送信以外の手段で 外部から停止させることができなくなる。 外部コマンドなどによって正常終了させるには、 [プロセス停止制御ハンドラ](../../component/handlers/handlers-ProcessStopHandler.md) を本ハンドラの後続に設定する必要がある。 |
-| [リトライ制御ハンドラ](../../component/handlers/handlers-RetryHandler.md) | 後続ハンドラの実行中に本ハンドラが実行時例外を捕捉した場合、 リトライ可能例外でラップして再送出し、バッチプロセスの継続制御を [リトライ制御ハンドラ](../../component/handlers/handlers-RetryHandler.md) で行う。そのため、このハンドラを本ハンドラの 上位に配置する必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路での処理]**
-
-**1. (ハンドラキューのコピー)**
-
-本ハンドラ開始時点でのハンドラキューのスナップショット(シャローコピー)を作成する。
-
-**2. (ループ開始)**
-
-実行コンテキスト上のハンドラキューの内容を、 **1.** で作成したスナップショットの状態に復旧する。
-
-**3. (後続ハンドラの実行)**
-
-後続のハンドラを実行し、その結果を取得する。
-
-**[復路での処理]**
-
-**4. (実行待機)**
-
-本ハンドラに設定されたデータ監視時間から、後続ハンドラの実行時間を差し引いた時間を待機する。
-
-**5. (正常終了->ループ継続)**
-
-**2.** 以降の処理を繰り返す。
-
-**[例外処理]**
-
-**3a. (閉局エラー→ループ継続)**
-
-後続ハンドラ実行中に、サービス閉局エラー(nablarch.fw.Result.ServiceUnavailable)が送出された場合は、
-何もせずに、 **4.** **5.** の往路処理を行なう。
-
-**3b. (プロセス正常停止)**
-
-後続ハンドラ実行中に、プロセス停止要求(nablarch.fw.handler.ProcessStopHandler.ProcessStop) が送出された場合は、
-ループを中断し、後続ハンドラによる直近の処理結果オブジェクトをリターンして終了する。
-
-**3c. (プロセス異常停止)**
-
-後続ハンドラ実行中に、プロセス異常停止要求(nablarch.fw.ProcessAbnormalEnd)が送出された場合は、
-ループを中断し、捕捉した例外を再送出して終了する。
-
-**3d. (実行時例外→リトライ)**
-
-後続ハンドラ実行中にその他の実行時例外が送出された場合は、その内容を障害ログに出力した上で、
-リトライ可能例外(RetryableException)でラップして送出し終了する。
-
-**3e. (エラー終了)**
-
-後続ハンドラ実行中にエラー(java.lang.Error)が送出された場合は、捕捉したエラーをそのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| データ監視間隔 (単位:msec) | dataWatchInterval | int | 任意指定 (デフォルト=1000) |
-| プロセスを正常停止させる例外 | normalEndExceptions | List | 任意指定 (デフォルト=[ProcessStop.class]) |
-| プロセスを異常終了させる例外 | abnormalEndExceptions | List | 任意指定 (デフォルト=[ProcessAbnormalEnd.class]) |
-
-**標準設定**
-
-データ監視間隔は、常駐プロセスごとに異なる値を設定したり、また、運用状況に応じて変更することが想定されるため、
-下記例のように埋め込みパラメータとして定義することを強く推奨する。
-
-```xml
-
-
-
-
-```
-
-> **Note:**
-> プロセス正常停止、プロセス異常停止の対象となる例外クラスについては、本ハンドラの設定により
-> 追加・変更することが可能だが、特段の理由が無い限りはデフォルト設定を使用すること。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ProcessStopHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ProcessStopHandler.md
deleted file mode 100644
index 3d3cb5589..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ProcessStopHandler.md
+++ /dev/null
@@ -1,135 +0,0 @@
-## プロセス停止制御ハンドラ
-
-**クラス名:** `nablarch.fw.handler.ProcessStopHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラは、 [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) のような、ループ制御を行なうハンドラの後続に配置することで、
-DB上のフラグ変更によってループを中断させ、プロセスを正常終了させることを可能とするハンドラである。
-
-> **Warning:**
-> 本ハンドラでは、処理停止フラグの初期化は行なわない。
-> 停止フラグを立ててプロセスを停止させた後、再度同じプロセスを実行する際には、
-> 停止フラグをクリアする必要がある。
-
------
-
-**ハンドラ処理概要** ( [常駐バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-batch-resident.md) での例)
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| スレッドコンテキスト変数設定ハンドラ(メインスレッド) | nablarch.common.handler.ThreadContextHandler_main | Object | Object | 起動引数の内容からリクエストID、ユーザID等のスレッドコンテキスト変数を初期化する。 | - | - |
-| プロセス常駐化ハンドラ | nablarch.fw.handler.ProcessResidentHandler | Object | Object | データ監視間隔ごとに後続処理を繰り返し実行する。 | ループを継続する。 | ログ出力を行い、実行時例外が送出された場合はリトライ可能例外にラップして送出する。エラーが送出された場合はそのまま再送出する。 |
-| 処理停止制御ハンドラ | nablarch.fw.handler.ProcessStopHandler | Object | Object | リクエストテーブル上の処理停止フラグがオンであった場合は、後続の処理は行なわずにプロセス停止例外(ProcessStop)を送出する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | 本ハンドラではスレッドコンテキスト上のリクエストID属性を使用するので、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) を本ハンドラより前に配置する必要がある。 |
-| [トランザクションループ制御ハンドラ](../../component/handlers/handlers-LoopHandler.md) | [都度起動バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-batch-single-shot.md) を実行中に停止させる場合は、 [トランザクションループ制御ハンドラ](../../component/handlers/handlers-LoopHandler.md) の後続にこのハンドラを配置する。 |
-| [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) | [常駐バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-batch-resident.md) では、 [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) の後続にこのハンドラを配置する。 なお、停止時の終了コードは(0:正常終了)となる。 |
-| [リクエストスレッド内ループ制御ハンドラ](../../component/handlers/handlers-RequestThreadLoopHandler.md) | [同期応答メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging-request-reply.md) では、 [リクエストスレッド内ループ制御ハンドラ](../../component/handlers/handlers-RequestThreadLoopHandler.md) の後続にこのハンドラを配置する。 なお、停止時の終了コードは(0:正常終了)となる。 |
-
-**テーブル構成**
-
-以下は、本ハンドラが参照するリクエスト管理テーブルの構造である。
-
-| 論理名 | データ型 | 備考 |
-|---|---|---|
-| リクエストID | VARCHAR PK | プロセスを特定するためのID |
-| 処理停止フラグ | CHAR(1) | "0": 通常、"1": 停止 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (停止フラグ確認処理のスキップ)**
-
-本ハンドラの総実行回数が、停止フラグ確認間隔の値の倍数でない場合、
-このハンドラでは何もせずに、後続のハンドラに処理を委譲し、その処理結果をリターンして終了する。
-
-**2. (停止フラグ確認)**
-
-本ハンドラの総実行回数が、停止フラグ確認間隔の値の倍数に一致する場合、
-リクエストテーブルに以下のクエリを発行し、停止フラグの状態を確認する。
-
-**抽出条件**:
-
-```
-リクエストID = (スレッドコンテキストのリクエストID属性値) AND 処理停止フラグ = '1'
-```
-
-**2a. (プロセス停止)**
-
-**2.** の結果セットが空ではない場合、後続ハンドラの実行は行なわず、 `ProcessStopHandler.ProcessStop` を送出し終了する。
-これにより、ループは中断され、運用ログを出力したのち、プロセスが停止する。また、未コミットの例外は全てロールバックされる。
-
-**3. (後続ハンドラへの処理移譲)**
-
-**2.** の結果セットが空であった場合、後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**4. (正常終了)**
-
-**3.** で取得した処理結果をリターンして終了する。
-
-**[例外処理]**
-
-**3a. (後続ハンドラ処理中のエラー)**
-
-後続ハンドラの処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 停止フラグ確認間隔 | checkInterval | int | 任意指定(デフォルト = 1:毎回) |
-| リクエストテーブル名 | tableName | String | 必須指定 |
-| リクエストIDカラム名 | requestIdColumnName | String | 必須指定 |
-| 処理停止フラグカラム名 | processHaltColumnName | String | 必須指定 |
-| DBトランザクションマネージャ | dbTransactionManager | SimpleDbTransactionManager | 必須指定 |
-| プロセス停止時終了コード | exitCode | Integer | 任意指定(デフォルト = 1) |
-
-**基本設定**
-
-```xml
-
-
-
-
-
-
-
-
-
-
-```
-
-**任意の設定項目も含めた例**
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestHandlerEntry.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestHandlerEntry.md
deleted file mode 100644
index 7c2aa21d6..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestHandlerEntry.md
+++ /dev/null
@@ -1,145 +0,0 @@
-## リクエストハンドラエントリ
-
-**クラス名:** `nablarch.fw.RequestHandlerEntry`
-
-このハンドラは、対象のハンドラをラップし、そのハンドラを特定の [リクエストパス](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストに対する業務処理のディスパッチ) に対してのみ実行することができる。
-
-**リクエストパスのパターン指定**
-
-このハンドラでは、リクエストパスとして、URIや Unixのシステムパス、Javaの名前空間のように、"/"で区切られた
-階層構造を想定しており、
-ハンドラを実行するリクエストパスのパターンを **Glob式** に似た書式で指定することができる。
-
-1. ワイルドカードの指定等、基本的にUnixやDOSで使用されるGlob式の記法に準じる。
- '*'はワイルドカードであり'.'と'/'を除く任意の文字の任意個の列にマッチする。
-
- | requestPattern | リクエストパス | 結果 |
- |---|---|---|
- | / | / | 呼ばれる |
- | | /index.jsp | 呼ばれない |
- | /* | / | 呼ばれる |
- | | /app | 呼ばれる |
- | | /app/ | 呼ばれない (* は'/'にはマッチしない) |
- | | /index.jsp | 呼ばれない (* は'.'にはマッチしない) |
- | /app/*.jsp | /app/index.jsp | 呼ばれる |
- | | /app/admin | 呼ばれない |
- | /app/*/test | /app/admin/test | 呼ばれる |
- | | /app/test/ | 呼ばれない |
-2. 最後尾の'/'が'//'と重ねられていた場合、それ以前の文字列について
- 前方一致すればマッチ成功と判定する。
- リソース名を表す'//'以降の文字列については別途マッチ判定が行われる。
- (すなわち、"サブディレクトリ全体"に対してマッチする。)
-
- | requestPattern | リクエストパス | 結果 |
- |---|---|---|
- | /app// | / | 呼ばれない |
- | | /app/ | 呼ばれる |
- | | /app/admin/ | 呼ばれる |
- | | /app/admin/index.jsp | 呼ばれる |
- | //*.jsp | /app/index.jsp | 呼ばれる |
- | | /app/admin/index.jsp | 呼ばれる |
- | | /app/index.html | 呼ばれない('*.jsp'がマッチしない) |
-
------
-
------
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (ハンドラ実行判定)**
-
-ハンドラの引数として渡されたリクエストオブジェクトから、リクエストパスを取得し、
-本ハンドラに設定された **実行対象リクエストパスパターン** と合致するかどうかを上述した判定ロジックに沿って判定する。
-
-**2. (実行対象外リクエストパス)**
-
-**1.** の判定でパターンが合致しなかった場合は、それ以上このハンドラでは処理を行わず、
-後続のハンドラに処理移譲し、その結果を取得する。
-
-**2a. (実行対象リクエストパス)**
-
-**1.** の判定でパターンが合致した場合は、このハンドラに設定された **委譲対象ハンドラ** に処理を委譲し、
-その結果を取得する。
-
-**[復路処理]**
-
-**3. (正常終了)**
-
-**2.** もしくは **2a.** の結果をリターンして終了する。
-
-**[例外処理]**
-
-**2b. (エラー終了)**
-
-後続のハンドラ、もしくは **委譲対象ハンドラの** 処理中にエラーが発生した場合は、
-特段の例外処理は行なわず、後続ハンドラで送出された例外をそのまま送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 委譲対象ハンドラ | handler | Handler | (必須指定) |
-| 実行対象リクエストパスパターン | requestPattern | String | (必須指定) 委譲対象のハンドラを実行するリクエストパスのパターン。 |
-
-**画面オンライン処理での設定例**
-
-宣言的トランザクション制御の対象範囲を、特定のパス(/action) 配下に限定する場合。
-
-```xml
-
-
-
-
-
-```
-
-**複数のパッケージを使用する設定例**
-
-上記の設定例のように、単一のリクエストハンドラエントリを使用した場合、
-ベースパッケージが異なるパッケージに対してディスパッチすることははできない(下図参照)。
-
-*【図:ss11AAをベースパッケージに指定した場合のディスパッチ範囲】*
-
-```text
-nablarch
- +-sample
- +- ss11AA <-- ベースパッケージ
- | +- RM11AA0101Action <-- 委譲可
- | +- RM11AA0102Action <-- 委譲可
- +- ss99ZZ
- +- RM99ZZ0101Action <-- 委譲不可
-```
-
-異なるリクエストパスにマッチするリクエストハンドラエントリを複数使用することにより、
-複数のベースパッケージ配下のクラスにディスパッチすることができる。
-
-以下に設定例を記載する。
-リクエストパスのパターンとベースパッケージの対応関係に注目されたい。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestPathJavaPackageMapping.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestPathJavaPackageMapping.md
deleted file mode 100644
index 7e43ab597..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestPathJavaPackageMapping.md
+++ /dev/null
@@ -1,220 +0,0 @@
-## リクエストディスパッチハンドラ
-
-**クラス名:** `nablarch.fw.handler.RequestPathJavaPackageMapping`
-
------
-
------
-
-### 概要
-
-[リクエストディスパッチハンドラ](../../component/handlers/handlers-RequestPathJavaPackageMapping.md) は、 [リクエストパス](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストの識別と業務処理の実行) をJavaパッケージ階層にマッピングすることで、
-リクエストパスの値に応じて実行するハンドラを任意に切り替えることを可能とするハンドラである。
-
-主に **業務アクションハンドラ** のディスパッチを行う際に使用する。
-
-例えば、以下の設定例では、リクエストパスが **/app/action/** で始まる場合に、
-後続処理を Javaパッケージ **nablarch.application** 配下のクラスにディスパッチする。
-(ディスパッチ対象のクラスをハンドラキューに追加する。)
-
-```xml
-
-
-
-
-
-```
-
-この場合、リクエストパスの値とディスパッチ先のクラス名との対応は以下のようになる。
-
-| リクエストパス | ディスパッチ対象クラス |
-|---|---|
-| /app/action/AdminApp | nablarch.application.AdminApp |
-| /app/action/user/UserApp | nablarch.application.user.UserApp |
-| /app/application/AdminApp | (ディスパッチ対象無し:404エラー) |
-
------
-
-**ハンドラ処理概要** ([同期応答メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging-request-reply.md) での構成)
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| データリードハンドラ(FW制御ヘッダリーダ/メッセージリーダ利用) | nablarch.fw.handler.DataReadHandler_messaging | Object | Result | 要求電文を受信しFW制御ヘッダ部を解析して要求電文オブジェクト(RequestMessage)を作成し後続のハンドラに渡す。また、FW制御ヘッダのrequestId/userIdの値をメッセージコンテキストに設定する。 | - | - | - |
-| リクエストディスパッチハンドラ | nablarch.fw.handler.RequestPathJavaPackageMapping | Request | Object | 引数として渡されたリクエストオブジェクトのリクエストパスから、処理対象の業務アクションを決定しハンドラキューに追加する。 | - | - | - |
-| 同期応答電文処理用業務アクションハンドラ | nablarch.fw.action.MessagingAction | RequestMessage | ResponseMessage | 要求電文の内容をもとに業務処理を実行する。 | 業務処理の結果と要求電文の内容から応答電文の内容を作成して返却する。 | - | トランザクションロールバック時にエラー応答電文を作成する。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [共通起動ランチャ](../../component/handlers/handlers-Main.md) | [バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-architectural-pattern-batch.md) では、プロセス起動引数 **--requestPath** に指定された [リクエストパス](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストの識別と業務処理の実行) の値に応じてディスパッチを行う。 |
-| [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) | [同期応答メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging-request-reply.md) では、 [要求電文(FWヘッダ)リーダ](../../component/readers/readers-FwHeaderReader.md) が読み込むフレームワーク制御ヘッダ領域のリクエストIDヘッダ **(項目名:requestId)** の値を使用する。 |
-| [HTTPリクエストディスパッチハンドラ](../../component/handlers/handlers-HttpRequestJavaPackageMapping.md) | [画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) では、本ハンドラを拡張した [HTTPリクエストディスパッチハンドラ](../../component/handlers/handlers-HttpRequestJavaPackageMapping.md) を使用する。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (リクエストパスの取得)**
-
-ハンドラの引数として渡されたリクエストオブジェクトから、以下のAPIを使用してリクエストパスを取得する。:
-
-```
-nablarch.fw.Request#getRequestPath(): String
-```
-
-**1a. (ベースパス外アクセスエラー)**
-
-取得したリクエストパスに対して、本ハンドラに設定されたベースパスが前方一致しない場合は、
-実行時例外 [Result.NotFound](../../javadoc/nablarch/fw/Result.NotFound.html) を送出する。
-
-**1b. (非Java識別子を含むパスによるアクセスエラー)**
-
-取得したリクエストパスの各ディレクトリ文字列中に、Java識別子以外の文字 [1] が含まれていた場合は、
-Javaの名前空間にマッピングすることができないので、実行時例外 [Result.NotFound](../../javadoc/nablarch/fw/Result.NotFound.html) を送出する。
-
-**2. (ディスパッチ対象クラスの決定)**
-
-以下の仕様に従って、ディスパッチ対象クラスの完全修飾名を決定する。
-
-1. リクエストパス中の **”.”** を **”/”** に置換する。
-2. リクエストパスの先頭から 本ハンドラに設定された **ベースパス** と一致する部分を、同じく本ハンドラに設定された
- **マッピング先Javaパッケージ名** に置換する。
- (**optionalPackageMappingEntries** が設定されている場合は、そちらの設定によるマッピングが優先される。
- マッチするものが存在しなかった場合は、上記の **ベースパス** によるマッチングを行う。
- **optionalPackageMappingEntries** の仕様と設定方法については、 [複雑なマッピング定義](../../component/handlers/handlers-RequestPathJavaPackageMapping.md#-javaパッケージの組み合わせ----------------------------------------------javapackagemappingentry----デフォルト--null---)
- の項を参照。)
-3. **2.** の結果文字列を **”.”** で分割する。分割後の各トークンの内、英大文字で始まっているものをクラス名とし、
- それ以前の各トークンをパッケージ階層とする。
-4. 本ハンドラ設定値として、 **ディスパッチ対象クラス名の接頭辞/接尾辞** が設定されている場合はクラス名の前後にそれぞれ付加する。
-
-**3. (ディスパッチ対象クラスのインスタンス作成)**
-
-コンテキストクラスパスから、 **2.** で決定された完全修飾名のクラスをロードし、
-デフォルトコンストラクタを用いてインスタンスを作成する。
-
-**3a. (クラスロードエラー)**
-
-対象のクラスがコンテキストクラスパス上に存在しなかった場合は、実行時例外 [Result.NotFound](../../javadoc/nablarch/fw/Result.NotFound.html) を送出する。
-
-**3b. (インスタンス生成時エラー)**
-
-対象のクラスにデフォルトコンストラクタが定義されていない場合や、コンストラクタ内で例外が送出されるなど、
-何らかの理由でインスタンスの生成に失敗した場合は、実行時例外を送出する。
-
-**5. (ハンドラインスタンスをハンドラキューに追加)**
-
-実行コンテキスト上のハンドラキューにハンドラインスタンスを追加する。
-ハンドラの追加位置は、本ハンドラの設定値(**immediate**)によって以下のように定まる。
-
-ディスパッチハンドラの直後にハンドラインスタンスを挿入する。 (デフォルト)
-
-ハンドラキューの末尾にハンドラインスタンスを追加する。
-
-なお、ハンドラキューに追加したインスタンスがハンドラインタフェースを実装していなかった場合は、
-実行コンテキスト上の **MethodBinder** を使用して、 [メソッド単位のディスパッチ](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストの識別と業務処理の実行) を行う
-ハンドラインターフェースのアダプタが作成される。
-
-**5a. (ディスパッチ不可能エラー)**
-
-対象のクラスがハンドラインターフェースを実装しておらず、また、実行コンテキスト上に **MethodBinder** が設定されていない場合は、
-[Result.NotFound](../../javadoc/nablarch/fw/Result.NotFound.html) が送出される。
-
-**6. (後続ハンドラの実行)**
-
-ハンドラキュー上の後続ハンドラに対して処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**7. (正常終了)**
-
-**6.** の結果をリターンして終了する。
-
-**[例外処理]**
-
-**6a. (後続ハンドラ処理でエラー)**
-
-後続ハンドラの処理中に例外が発生した場合はそのまま再送出して終了する。
-
-リクエストパスに ascii範囲外のマルチバイト文字が含まれていても許容される。
-ただし、マッピング先のJavaクラスにascii範囲外の文字が含まれる場合は、404エラー扱いとなる。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| ベースパス文字列 | basePath | String | 任意指定 (デフォルト = "") |
-| ベースパッケージ | basePackage | String | 任意指定 (デフォルト = "") |
-| ディスパッチ対象クラス名の接頭辞 | classNamePrefix | String | 任意指定 (デフォルト = "") |
-| ディスパッチ対象クラス名の接尾辞 | classNameSuffix | String | 任意指定 (デフォルト = "") |
-| ハンドラ追加位置 | immediate | boolean | 任意指定 (デフォルト = true) |
-| リクエストパスのパターンとマッピング先 Javaパッケージの組み合わせ | optionalPackageMappingEntries | nablarch.fw.handler .JavaPackageMappingEntry | 任意指定 (デフォルト = null) |
-
-**基本設定**
-
-```xml
-
-
-
-
-
-
-```
-
-**ディスパッチ対象のクラス名を [リソース名] + "Action" とする場合**
-
-```xml
-
-
-
-
-
-```
-
-**複雑なマッピング設定**
-
-optionalPackageMappingEntries プロパティに設定を行うことで、リクエストパスごとにマッピング先Javaパッケージを切り替えることができる。
-optionalPackageMappingEntries プロパティには、リクエストパスのパターンとJava パッケージの組み合わせを設定する。
-
-optionalPackageMappingEntries プロパティに設定した順番にリクエストパスのパターンとリクエストパスとのマッチングが行われ、
-最初にマッチしたJavaパッケージが使用される。マッチするものが存在しない場合、本ハンドラのbasePackage プロパティに設定したJavaパッケージが使用される。
-
-リクエストパスのパターンは、Glob式に似た書式で指定することができる。
-詳細は、 [リクエストハンドラエントリ](../../component/handlers/handlers-RequestHandlerEntry.md#リクエストハンドラエントリ) を参照すること(リクエストハンドラエントリと同一の記法でパターンを指定できる)。
-
-例えば、以下の設定では、リクエストパスのパターン **/sample/admin//** をJavaパッケージ **nablarch.sample.app1** 、
-リクエストパスのパターン **/sample/user//** をJavaパッケージ **nablarch.sample.apps2** に対応させている。
-いずれのリクエストパターンにもマッチしない場合は、本ハンドラのbasePackage プロパティに設定した **nablarch.sample.base** が使用される。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-| リクエストパス | ディスパッチ対象クラス |
-|---|---|
-| /admin/AdminApp | nablarch.sample.apps1.admin.AdminApp |
-| /user/UserApp | nablarch.sample.apps2.user.UserApp |
-| /BaseApp | nablarch.sample.base.BaseApp |
-
-> **Note:**
-> リクエストパスのパターンのマッチは、リクエストパス中のすべての **”.”** をスラッシュ **”/”** に置換してから行われる。
-> この仕様は、Nablarchのバッチ処理で過去に使用していたドット区切りのリクエストパス(例: ss01A001.B01AA001Action/B01AA0010)との互換性を保つために存在している。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestThreadLoopHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestThreadLoopHandler.md
deleted file mode 100644
index 01264f105..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RequestThreadLoopHandler.md
+++ /dev/null
@@ -1,142 +0,0 @@
-## リクエストスレッド内ループ制御ハンドラ
-
-**クラス名:** `nablarch.fw.handler.RequestThreadLoopHandler`
-
------
-
------
-
-### 概要
-
-リクエストスレッド上のループ制御を行うハンドラ。
-
-本ハンドラは、サーバソケットや受信電文キュー等を監視し、リアルタイム応答を行う
-サーバ型プロセスにおいて、各リクエストスレッド上で以下のループ制御を行うハンドラである。:
-
-```
-データリーダによるリクエストの受信 → リクエスト処理の実行 → 次のリクエストの待機
-```
-
-サーバ型処理では、バッチ処理とは異なり、個々のリクエスト処理は完全に独立しているので、
-1つのリクエスト処理がエラーとなっても他のリクエスト処理はそのまま継続しなければならない。
-このため、本ハンドラで捕捉した例外は、プロセス正常停止要求や致命的な一部の例外を除き
-再送出せずにそのまま処理を継続する。
-
-> **Note:**
-> 本ハンドラと [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) の責務は似通っているが、
-> [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) ではメインスレッド上でのループ制御を行い、
-> [リクエストスレッド内ループ制御ハンドラ](../../component/handlers/handlers-RequestThreadLoopHandler.md) は各サブスレッド上でのループ制御を行うという違いから
-> 例外制御のポリシーなどの面で挙動が大きく異なっており、共用はできない。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| マルチスレッド実行制御ハンドラ | nablarch.fw.handler.MultiThreadExecutionHandler | Object | MultiStatus | サブスレッドを作成し、後続ハンドラの処理を並行実行する。 実行コンテキスト上にデータリーダが存在しない場合は、コールバックを行う。 | 全スレッドの正常終了まで待機する。 | 処理中のスレッドが完了するまで待機し起因例外を再送出する。 | 1. 処理開始前 / 2. データリーダ作成 / 3. スレッド異常終了時 / 4. 処理完了時 |
-| リクエストスレッド内ループ制御ハンドラ | nablarch.fw.handler.RequestThreadLoopHandler | Object | Object | データリーダが閉じられるまで、後続のハンドラを繰り返し実行する。 | ハンドラキューの内容を復旧しループを継続する。 | プロセス停止か致命的なエラーが発生した場合のみループを停止する。 | - |
-| 処理停止制御ハンドラ | nablarch.fw.handler.ProcessStopHandler | Object | Object | リクエストテーブル上の処理停止フラグがオンであった場合は、後続の処理は行なわずにプロセス停止例外(ProcessStop)を送出する。 | - | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) | 本ハンドラーは、 [マルチスレッド実行制御ハンドラ](../../component/handlers/handlers-MultiThreadExecutionHandler.md) が作成する 各リクエストスレッド内のループ制御を行う。 |
-| [プロセス停止制御ハンドラ](../../component/handlers/handlers-ProcessStopHandler.md) | 本ハンドラを組み込んだハンドラキューは、データリーダが閉じられるか、 致命的なエラーが発生しない限り停止しない。 外部からプロセスを正常終了させる場合は [プロセス停止制御ハンドラ](../../component/handlers/handlers-ProcessStopHandler.md) を後続ハンドラとして組み込む必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (ループ終了判定)**
-
-データリーダが開いていることを確認する。
-
-**1a.(ループ終了)**
-
-データリーダが閉じられていた場合は、ループを終了し、直近の処理結果をリターンする。
-
-**2. (実行コンテキストのコピー)**
-
-ループ開始前の実行コンテキストをコピーして、1回分のループで使用する実行コンテキストを作成する。
-この際、実行コンテキストの各属性は以下のように複製される。
-
-| 属性名 | データ型 | コピーされる内容 |
-|---|---|---|
-| ハンドラキュー | List<[Handler](../../javadoc/nablarch/fw/Handler.html)> | ループ開始前のハンドラキューのシャローコピーを作成する。 |
-| リクエストコンテキスト | Map | 新規のMapを作成する。 |
-| セッションコンテキスト | Map | ループ開始前のセッションスコープのMapをそのまま設定する。 |
-| データリーダ | [DataReader](../../javadoc/nablarch/fw/DataReader.html) | ループ開始前のデータリーダをそのまま設定する。 |
-| データリーダファクトリ | [DataReaderFactory](../../javadoc/nablarch/fw/DataReaderFactory.html) | ループ開始前のファクトリをそのまま設定する。 |
-
-**3. (後続ハンドラの実行)**
-
-コピーした実行コンテキストを用いて、ハンドラキュー上の後続のハンドラに処理を委譲する。
-
-**[復路処理]**
-
-**4. (リクエスト処理正常終了 → ループ継続)**
-
-後続ハンドラが正常終了した場合は、 **1.** に戻りループを継続する。
-
-**[例外処理]**
-
-**3a. (プロセス停止コマンド投入による正常停止)**
-
-[プロセス停止制御ハンドラ](../../component/handlers/handlers-ProcessStopHandler.md) によりプロセス停止例外が送出された場合は、ループを中断し [Result.Success](../../javadoc/nablarch/fw/Result.Success.html) を返却して
-終了コード0で正常終了させる。
-
-**3b. (例外制御)**
-
-後続ハンドラの処理中に実行時例外もしくはエラーが送出された場合でも、
-ログ出力のみ行い、原則としてループは継続させる。
-ただし、プロセスの継続に影響するような致命的なエラーが発生した場合のみ、例外を再送出し
-プロセスを停止させる。
-
-捕捉した例外/エラーの型ごとの処理内容の詳細は以下のとおり。
-
-| 捕捉した例外クラス | 障害ログ出力 | ログレベル | 処理結果 | 備考 |
-|---|---|---|---|---|
-| nablarch.fw.Result.ServiceUnavailable | なし | Trace | ループ継続 | 業務機能が閉局していた場合に [開閉局制御ハンドラ](../../component/handlers/handlers-ServiceAvailabilityCheckHandler.md) から送出される。 INFOログを出力し、 本ハンドラに設定された **業務閉局時待機時間** だけwait した後でループを継続する。 |
-| nablarch.fw.handler.retry.Retryable | なし | なし | 捕捉した例外 を再送出 | DB/MQの接続エラーなどの単純再実行による処理継続が可能な エラーが生じた場合に送出される。 再送出し上位の [リトライ制御ハンドラ](../../component/handlers/handlers-RetryHandler.md) で継続判断を行う。 |
-| java.lang.ThreadDeath | なし | Info | 捕捉した例外 を再送出 | 外部からスレッド停止APIが呼ばれた場合に発生する。 通常運用で発生しうるため、Infoレベルのログを出力し、 再送出する。 |
-| java.lang.StackOverflowError | あり | Fatal | ループ継続 | アプリケーションロジックの問題(無限ループ等)である 可能性が高いのでFatalログを出力し、再送出はしない。 |
-| java.lang.OutOfMemoryError | あり | Fatal | ループ継続 | リソースを浪費しているリクエストスレッドが終了することで 復旧する可能性があるため、Fatalログを出力し再送出はしない。 なお、ログ出力の際には失敗する可能性があるので、 ログ出力前に標準エラー出力に最小限のメッセージを出力する。 |
-| java.lang.VirtualMachineError | なし | なし | 捕捉した例外 を再送出 | (OutOfMemoryError/StackOverFlowErrorを除く) |
-| nablarch.fw.launcher.ProcessAbnormalEnd | なし | なし | 捕捉した例外 を再送出 | (極めて特殊なケースを除き使用されない。) |
-| nablarch.fw.Result.ServiceError | あり | Fatal/Warn | ループ継続 | アプリケーション側から障害ログの出力が要求された場合に 送出される。 |
-| nablarch.fw.Result.Error | あり | Fatal | ループ継続 | |
-| (上記以外の実行時例外/エラー) | あり | Fatal | ループ継続 | |
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| 業務閉局時待機時間(単位:msec) | serviceUnavailabilityRetryInterval | int | 任意指定 (デフォルト=1000) |
-
-**標準設定**
-
-[同期応答メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging-request-reply.md) では、
-エラー応答送信後、速やかにメッセージ待機状態に移行するため、
-業務閉塞時の待機時間を0に設定する。
-
-```xml
-
-
-
-```
-
-一方、 [応答不要メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging-receive.md) では、
-業務閉塞時は要求電文のGET処理は行なわず、業務が開局されるまで各リクエストスレッド上で、
-リクエストテーブルをポーリングしつつ待機する。
-このポーリング間隔を調整する場合は明示的に値を設定する。
-(デフォルトでは1000msecずつ待機する。)
-
-```xml
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ResourceMapping.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ResourceMapping.md
deleted file mode 100644
index fb5a4c26b..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ResourceMapping.md
+++ /dev/null
@@ -1,156 +0,0 @@
-## リソースマッピングハンドラ
-
-**クラス名:** `nablarch.fw.web.handler.ResourceMapping`
-
------
-
------
-
-### 概要
-
-業務アクションの処理を経由せずに、直接レスポンスとして返却するリソースを決定するハンドラ。
-
-このハンドラは、主にログイン画面のようにビジネスロジックを介さずに表示するJSPや、
-javascriptや画像のような静的リソースのレスポンスを行なう場合に使用する。
-
-レスポンスされるリソースは、事前に定義されたリクエストパスと
-[コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) とのマッピング定義を元に決定される。
-
-マッピング先のリソースは、以下のいずれかを指定することができる。
-
-1. サーブレット/JSPフォーワード (**servlet://** スキーム) **[デフォルト]**
-2. 内部フォーワードの実行結果 (**forward://** スキーム)
-3. コンテキストクラスローダ上のリソース (**classpath://** スキーム)
-
-なお、セキュリティ上の配慮から、ファイルシステム上のローカルファイル(**file://** スキーム)を
-マッピング先に指定することはできない。また、スキームの指定を省略した場合は **servlet://** スキームが指定されたものと
-みなされる。
-
-> **Note:**
-> 通常のサーブレットアプリケーションでは、直接アクセス不可能なリソースは **/WEB-INF/** 配下に配置するのが
-> 一般的であるが、本フレームワークでは、JSP、画像などのリソースは全てサーブレットコンテキスト配下に
-> 直接配置することを推奨している。
-
-> この場合、デフォルトでは全てのリソースに対する直接アクセスは拒否され、
-> 業務アクションのレスポンスもしくは、本ハンドラのマッピング定義の対象となるリソースのみアクセス可能となる。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| HTTPレスポンスハンドラ | nablarch.fw.web.handler.HttpResponseHandler | HttpRequest | HttpResponse | - | HTTPレスポンスの内容に沿ってレスポンス処理かサーブレットフォーワードのいずれかを行う。 | 既定のエラー画面をレスポンス後、例外を再送出する。ただしサーブレットフォーワード処理中にエラーが発生した場合はログ出力のみを行なう。 |
-| 内部フォーワードハンドラ | nablarch.fw.web.handler.ForwardingHandler | HttpRequest | HttpResponse | - | 遷移先に内部フォーワードパスが指定されていた場合、HTTPリクエストオブジェクトのリクエストURIを内部フォーワードパスに書き換えた後、後続のハンドラを再実行する。 | - |
-| リソースマッピングハンドラ | nablarch.fw.web.handler.ResourceMapping | HttpRequest | HttpResponse | リクエストURIを、クラスパス上のリソースパスもしくはサーブレットフォーワードパスにマッピングすることで、業務アクションを実行することなくHTTPレスポンスオブジェクトを作成して返却する。 | - | - |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [HTTPレスポンスハンドラ](../../component/handlers/handlers-HttpResponseHandler.md) | 本ハンドラが返却したHTTPレスポンスオブジェクト中の [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) の内容に 基づいてレスポンス処理を行う。 |
-| [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) | [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) が **forward://** で開始されている場合に内部フォーワード 処理を行う。 |
-| [リクエストハンドラエントリ](../../component/handlers/handlers-RequestHandlerEntry.md) | 本ハンドラによるマッピング対象となるリクエストを限定するために、 必ず、 [リクエストハンドラエントリ](../../component/handlers/handlers-RequestHandlerEntry.md) と組み合わせて使用する。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (マッピング対象リクエスト判定)**
-
-本ハンドラに設定された **マッピング元ベースURI** が、リクエストパス(サーブレットコンテキストからの相対パス)に対して
-前方一致するかどうかを判定する。
-
-**1a. (マッピング対象外のリクエスト)**
-
-**1.** でパスが一致しなかった場合、当該リクエストは本ハンドラによるマッピングの対象外と判断し、
-ステータスコード **404** のレスポンスをリターンし、終了する。
-
-**2.(マッピング先コンテンツパスの算出)**
-
-リクエストパス中の **1.** で前方一致した部分文字列を、本ハンドラに設定された **マッピング先ベースコンテンツパス** に置換し、
-**マッピング先コンテンツパス** とする。
-なお、 **マッピング先ベースコンテンツパス** にスキームが明示されていない場合は、 **servlet://** を補完する。
-
-**3. (マッピング先コンテンツパス実在チェック)**
-
-**マッピング先コンテンツパス** のスキームが **classpath://** であった場合は当該のパス上にリソースが実在するかどうかを
-チェックし、もし存在しなければ、ステータスコード **404** のレスポンスをリターンし、終了する。
-
-**4. (HTTPレスポンスの返却)**
-
-ステータスコード **200** のHTTPレスポンスを作成し、 **2.** で算出した [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) を設定した上でリターンする。
-
-**[復路処理]**
-
-(本ハンドラは後続のハンドラに対する処理委譲を行なわない。)
-
-**[例外処理]**
-
-(本ハンドラは後続のハンドラに対する処理委譲を行なわない。)
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| マッピング元ベースURI | baseUri | String | **必須指定** リクエストURIの置換対象となる部分文字列(前方一致)を指定する。 |
-| マッピング先ベースコンテンツパス | basePath | String | **必須指定** リクエストURI中のマッピング元ベースURIを置換する文字列 ([コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容))を指定する。 スキームの指定を省略した場合は、 **servlet://** が指定されたものとみなされる。 |
-
-**画像ファイルに対するマッピングの設定例**
-
-次の例では、リクエストパス **/img/** 配下の画像ファイルに対するリクエストを、
-サーブレットコンテキスト配下のパス **/resources/img/** を参照するようにマッピングしている。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-このマッピングにより、HTTPリクエストと、それに対するレスポンスの [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) との対応は以下のようになる。
-(サーブレットコンテキストパスが **/webapp/** であった場合。)
-
-| HTTPリクエストライン | コンテンツパス |
-|---|---|
-| GET /webapp/img/logo.png | servlet:///resource/img/logo.png |
-| GET /webapp/img/page1/figure01.png | servlet:///resource/img/page1/figure01.png |
-
-**直接表示可能なJSP画面**
-
-次の例では、リソース名の末尾が **-public.jsp** となっている場合に、当該ページに対する直接アクセスを可能としている。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-このマッピングにより、HTTPリクエストと、それに対するレスポンスの [コンテンツパス](../../component/handlers/handlers-HttpMethodBinding.md#業務アクションハンドラの実装内容) との対応は以下のようになる。
-(サーブレットコンテキストパスが **/webapp/** であった場合。)
-
-| HTTPリクエストライン | コンテンツパス |
-|---|---|
-| GET /webapp/jsp/login-public.jsp | servlet:///jsp/login-public.jsp |
-| GET /webapp/jsp/welcome.jsp | (404エラー) |
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RetryHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RetryHandler.md
deleted file mode 100644
index 1324bb3cb..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-RetryHandler.md
+++ /dev/null
@@ -1,146 +0,0 @@
-## リトライ制御ハンドラ
-
-**クラス名:** `nablarch.fw.handler.RetryHandler`
-
------
-
------
-
-### 概要
-
-[リトライ制御ハンドラ](../../component/handlers/handlers-RetryHandler.md) はデータベースアクセス時のデッドロックのように、
-単純リトライによってリカバリ可能なエラーについて、自動的なリトライ制御を行うハンドラである。
-
-本ハンドラでは、 [Retryable](../../javadoc/nablarch/fw/handler/retry/Retryable.html) インターフェースを実装した実行時例外を
-リトライ可能なエラーなとみなし、後続ハンドラの再実行を行う。
-なお、リトライ上限の判定に関する処理は、 [RetryContext](../../javadoc/nablarch/fw/handler/RetryHandler.RetryContext.html) インターフェースの実装クラスとして外部化されている。
-デフォルトでは以下の実装が提供されている。
-
-* [CountingRetryContext](../../javadoc/nablarch/fw/handler/retry/CountingRetryContext.html)
-
- リトライ回数に対する上限を設定する。
-* [TimeRetryContext](../../javadoc/nablarch/fw/handler/retry/TimeRetryContext.html)
-
- 初回実行時からの経過時間に対する上限を設定する。
-
-**ハンドラ処理概要** ([常駐バッチ実行制御基盤](../../processing-pattern/nablarch-batch/nablarch-batch-batch-resident.md) での構成)
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| リトライ制御ハンドラ | nablarch.fw.handler.RetryHandler | Object | Object | - | - | リトライ可能な実行時例外を捕捉し、かつリトライ上限に達していなければ後続のハンドラを再実行する。 |
-| プロセス常駐化ハンドラ | nablarch.fw.handler.ProcessResidentHandler | Object | Object | データ監視間隔ごとに後続処理を繰り返し実行する。 | ループを継続する。 | ログ出力を行い、実行時例外が送出された場合はリトライ可能例外にラップして送出する。エラーが送出された場合はそのまま再送出する。 |
-| データベース接続管理ハンドラ | nablarch.common.handler.DbConnectionManagementHandler | Object | Object | 業務処理用DB接続を取得し、スレッドローカル上に保持する。 | 業務処理用DB接続を開放(プールに返却)する。 | 業務処理用DB接続を開放(プールに返却)する。 |
-| メッセージングコンテキスト管理ハンドラ | nablarch.fw.messaging.handler.MessagingContextHandler | Object | Object | メッセージングコンテキスト(MQ接続)を取得し、スレッドローカルに保持する。 | メッセージングコンテキストを開放する。(プールに戻す) | メッセージングコンテキストを開放する。(プールに戻す) |
-
------
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) | [プロセス常駐化ハンドラ](../../component/handlers/handlers-ProcessResidentHandler.md) では後続ハンドラから例外が送出された場合、 その例外をリトライ可能例外にラップして再送出し、 [リトライ制御ハンドラ](../../component/handlers/handlers-RetryHandler.md) 側 でプロセス継続/中止の判断を行う。 |
-| * [データベース接続管理ハンドラ](../../component/handlers/handlers-DbConnectionManagementHandler.md) * [メッセージングコンテキスト管理ハンドラ](../../component/handlers/handlers-MessagingContextHandler.md) | 本フレームワークでは、DBやメッセージングキューへの接続エラーが発生 した場合にリトライ可能例外を送出する。 そのため、これらのハンドラを [リトライ制御ハンドラ](../../component/handlers/handlers-RetryHandler.md) の 後続に配置しないと再接続が行われない。 |
-
-### ハンドラ処理フロー
-
-本ハンドラの処理の流れは以下のとおりである。
-
-**[往路処理]**
-
-**1. (ハンドラキューのスナップショットを保存)**
-
-実行コンテキスト上のハンドラキューについて、シャローコピーを作成する。
-また、以降の処理で使用する [RetryContext](../../javadoc/nablarch/fw/handler/RetryHandler.RetryContext.html) のインスタンスを生成する。
-
-**2. (後続ハンドラの実行)**
-
-ハンドラキュー上の後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**3. (正常終了)**
-
-**2.** の結果をリターンして終了する。
-
-**[例外処理]**
-
-**2a. (リトライ処理)**
-
-後続ハンドラの実行中に [Retryable](../../javadoc/nablarch/fw/handler/retry/Retryable.html) を実装する実行時例外を捕捉した場合、
-[RetryContext](../../javadoc/nablarch/fw/handler/RetryHandler.RetryContext.html) によるリトライ上限判定を行い、上限に達していない場合は、
-以下の処理を実行する。
-
-1. ワーニングレベルのログを出力する。
-2. (初回のみ) リトライ処理開始時刻を設定する。
-3. リトライ回数を1増加させる。
-4. リトライ間隔(msec)待機する。
-5. ハンドラキューの内容を **1.** で作成したスナップショットの内容に戻す。
-6. 後続ハンドラの処理を再実行する。(**2.** に戻る。)
-
-**2b. (リトライ上限到達)**
-
-後続ハンドラ実行中に [Retryable](../../javadoc/nablarch/fw/handler/retry/Retryable.html) を実装する実行時例外を捕捉し、
-かつリトライ上限に達していた場合は、ワーニングログを出力し、 [ProcessAbnormalEnd](../../javadoc/nablarch/fw/launcher/ProcessAbnormalEnd.html) を送出する。
-これにより、実行中のプロセスは強制停止される。
-
-**2c. (リトライ対象外例外の捕捉)**
-
-[Retryable](../../javadoc/nablarch/fw/handler/retry/Retryable.html) を実装していない実行時例外を捕捉した場合は、それを再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおりである。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| リトライコンテキスト生成 | retryContextFactory | RetryContextFactor | 必須設定 |
-| リトライ上限エラー時障害コード | retryLimitExceededFailureCode | TransactionFactory | 任意指定 |
-| リトライ上限エラー時終了コード | retryLimitExceededExitCode | int | 任意指定(デフォルト="180") |
-
-リトライ上限の判定ロジックは、 RetryContext インターフェースの実装系によって提供される。
-フレームワークに同梱されている実装クラスの設定項目は以下のとおり。
-
-[CountingRetryContextFactory](../../javadoc/nablarch/fw/handler/retry/CountingRetryContextFactory.html) の設定項目
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| リトライ間隔 (msec) | retryIntervals | long | 任意設定(デフォルト="0") |
-| リトライ上限回数 | retryCount | int | 任意指定(デフォルト="0") |
-
-[TimeRetryContextFactory](../../javadoc/nablarch/fw/handler/retry/TimeRetryContextFactory.html) の設定項目
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| リトライ間隔 (msec) | retryIntervals | long | 任意設定(デフォルト="0") |
-| リトライ上限時間 | retryTime | int | 任意指定(デフォルト="0") |
-
-以下はリポジトリ設定ファイルの記述例である。
-
-[CountingRetryContext](../../javadoc/nablarch/fw/handler/retry/CountingRetryContext.html) を使用する例。
-
-```xml
-
-
-
-
-
-
-
-
-
-```
-
-[TimeRetryContextFactory](../../javadoc/nablarch/fw/handler/retry/TimeRetryContextFactory.html) を使用する例。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ServiceAvailabilityCheckHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ServiceAvailabilityCheckHandler.md
deleted file mode 100644
index 4039c82cd..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ServiceAvailabilityCheckHandler.md
+++ /dev/null
@@ -1,91 +0,0 @@
-## 開閉局制御ハンドラ
-
-**クラス名:** `nablarch.common.handler.ServiceAvailabilityCheckHandler`
-
------
-
-### 概要
-
-リクエストID単位での開閉局制御を行うハンドラ。
-
-開閉局機能の詳細については、
-[開閉局](../../component/libraries/libraries-05-ServiceAvailability.md)
-の章を参照すること。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| スレッドコンテキスト変数設定ハンドラ(リクエストスレッド) | nablarch.common.handler.ThreadContextHandler_request | Object | Object | 前のループで設定されたスレッドコンテキスト変数をクリアするためここで再初期化する。 | - | - |
-| 内部フォーワードハンドラ | nablarch.fw.web.handler.ForwardingHandler | HttpRequest | HttpResponse | - | 遷移先に内部フォーワードパスが指定されていた場合、HTTPリクエストオブジェクトのリクエストURIを内部フォーワードパスに書き換えた後、後続のハンドラを再実行する。 | - |
-| 開閉局制御ハンドラ | nablarch.fw.common.handler.ServiceAvailabilityCheckHandler | Request | Result | リクエストID単位での開閉局制御を行う | - | - |
-
------
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) | 本ハンドラではスレッドコンテキスト上に設定された [内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理) をもとに開閉局判定を行なうため、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) を本ハンドラの上位に配置する必要がある。 |
-| [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) | [画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) において内部フォーワードが行われた際に、 開閉局の制御をフォーワード先のリクエストID ([内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理)) で行う必要がある場合は、本ハンドラを [内部フォーワードハンドラ](../../component/handlers/handlers-ForwardingHandler.md) より下位に配置する必要がある。 |
-| [データリードハンドラ](../../component/handlers/handlers-DataReadHandler.md) | [メッセージング実行制御基盤](../../processing-pattern/mom-messaging/mom-messaging-messaging.md) では、 受信電文中のフレームワークヘッダ内に定義された **requestId** ヘッダの値を使用して 開閉局制御を行う。 (この場合、 [要求電文(FWヘッダ)リーダ](../../component/readers/readers-FwHeaderReader.md) が **requestId** ヘッダの値を スレッドコンテキストに設定するので、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md) は使用しなくてもよい) |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (リクエストIDの取得)**
-
-スレッドコンテキストから [リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#リクエストの識別と業務処理の実行) もしくは
-[内部リクエストID](../../about/about-nablarch/about-nablarch-architectural-pattern-concept.md#特殊なリクエスト処理) を取得する。
-
-**2. (開閉局判定)**
-
-本ハンドラに設定された **サービス開閉局判定オブジェクト** を使用して、
-**1.** で取得したリクエストIDに対するサービスが開局中であることを確認する。
-
-**2a. (閉局エラー)**
-
-サービスが閉局中であった場合は、後続のハンドラを実行せず、
-実行時例外 [Result.ServiceUnavailable](../../javadoc/nablarch/fw/Result.ServiceUnavailable.html) (**ステータスコード:503**)を送出して終了する。
-
-**3. (後続ハンドラの実行)**
-
-当該サービスが開局状態であれば、後続のハンドラを実行し、その結果を取得する。
-
-**[復路処理]**
-
-**4. (正常終了)**
-
-**3.** で取得した処理結果をリターンし終了する。
-
-**[例外処理]**
-
-**3a. (後続ハンドラの処理でエラー)**
-
-後続ハンドラの実行中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-なお、開閉局機能の設定内容の詳細については、
-[開閉局](../../component/libraries/libraries-05-ServiceAvailability.md)
-の章を参照すること。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| サービス開閉局判定コンポーネント | serviceAvailability | ServiceAvailability | 必須指定 |
-| 内部リクエストIDによる判定を行うかどうか | usesInternalRequestId | boolean | 任意指定 (デフォルト=false) |
-
-**標準設定**
-
-```xml
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-SessionConcurrentAccessHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-SessionConcurrentAccessHandler.md
deleted file mode 100644
index 2a45e863f..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-SessionConcurrentAccessHandler.md
+++ /dev/null
@@ -1,135 +0,0 @@
-## セッション並行アクセスハンドラ
-
-**クラス名:** `nablarch.fw.handler.SessionConcurrentAccessHandler`
-
------
-
------
-
-### 概要
-
-セッションスコープは、複数のリクエストに跨って共有されるため、セッションスコープ上の変数は
-複数のリクエストスレッドから並行アクセスされる可能性がある。
-この際、セッション変数単体の読み書きについてはスレッドセーフであることが保証されるものの、
-セッションオブジェクト全体の整合性については保証されない。
-
-本ハンドラはセッションスコープに対する並行アクセス制御をフレームワークレベルで実装するものである。
-
-現バージョンでは、CONCURRENT同期ポリシーのみサポートする。
-
-> **Warning:**
-> 同期方式のうちMANUALとSERIALIZEは廃止されました。
-
-> 本ハンドラを使用する場合は排他ロックによる同期制御が必要なオブジェクトを、セッションに格納しないでください。
-
-**CONCURRENT**
-
-スレッド毎のスナップショットを作成することで、並行アクセスに対する一貫読み取りおよび、
-楽観ロック方式による書き込みを行う。
-
-リクエストスレッドがセッションスコープ上の変数にアクセスした時点で、
-セッションスコープのスナップショット(ディープコピー)をスレッドローカル変数上に作成する。
-以降、当該リクエストスレッドからのアクセスはこのスナップショットに対して行われる。
-スナップショットに変更を加えた場合、リクエスト終了時にセッションスコープに反映される。
-このとき、セッションスコープが既に他のリクエストスレッドによって変更されていれば、
-変更の反映は行わず、ワーニングメッセージを登録する。
-
-> **Note:**
-> セッションスコープの変更反映に失敗した場合でも、DBのトランザクションは正常にコミットされる。
-> ただし、アノテーション **@ErrorOnSessionWriteConflict** をリクエストハンドラに付与することで、
-> セッションの変更に失敗した場合に実行時例外を送出させ、DBのトランザクションをロールバックさせることができる。
-
-> 以下はその実装例である。
-
-> ```java
-> public class SampleHandler implements Handler {
-> @ErrorOnSessionWriteConflict // セッションへの書込みに失敗した場合に実行時例外を送出する。
-> public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
-> SampleForm form = validate(req); // HttpRequestオブジェクトからリクエストパラメータを取得
-> Map results = doBusiness(form); // 業務処理を実行
->
-> ctx.setSessionScopedVar("results", results); // セッションスコープに処理結果を設定
->
-> return new HttpResponse("servlet://success.jsp"); // 遷移先の画面を指定
-> }
-> }
-> ```
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| セッション並行アクセスハンドラ | nablarch.fw.handler.SessionConcurrentAccessHandler | Object | Object | ハンドラに設定された同期ポリシーを実装したラッパーをセッションスコープに適用し、スコープ上の各変数に対する同期アクセス制御を開始する。 | 同期アクセス制御を停止する。 | 同期アクセス制御を停止する。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (セッションスコープラッパーの作成)**
-
-本ハンドラに指定されたセッション同期ポリシーに対応したセッションスコープのラッパーオブジェクトを作成し、
-実行コンテキストに設定する。
-
-| 同期ポリシー | ラッパークラス |
-|---|---|
-| CONCURRENT | nablarch.core.util.map.CopyOnReadMap |
-
-**2. (後続ハンドラの実行)**
-
-ハンドラキュー上の後続ハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**3. (同期ポリシーCONCURRENT: セッション変更の反映)**
-
-本ハンドラに設定された同期ポリシーが **CONCURRENT** であった場合、
-後続のハンドラキュー上の処理の中で、セッションスコープに対して変更を加えていた場合、
-その変更内容が保持されたスナップショットをセッションスコープ本体に反映する。
-
-**4. (セッションスコープラッパーの除去)**
-
-実行コンテキスト上のセッションスコープを、もとのスコープに差し替える。
-
-**5. (正常終了)**
-
-**2.** で取得した処理結果をリターンして終了する。
-
-**[例外処理]**
-
-**2a. (後続ハンドラ処理でエラー)**
-
-後続ハンドラの処理中に例外が送出された場合にも、上記 **3.** 、 **4.** での処理を実行した後、
-例外を再送出する。
-
-**3a (同期ポリシーCONCURRENT: セッション変更反映の際に論理排他エラー)**
-
-本ハンドラに設定された同期ポリシーが **CONCURRENT** であった場合、
-後続処理でのセッション変更内容を反映する際に、
-並行するスレッドによって同一セッションによる変更が既に反映されていた場合、
-リクエストスコープ上にワーニングメッセージを登録する。
-
-ただし、業務アクションに **@ErrorOnSessionWriteConflict** アノテーションが付与されていた場合は、
-実行時例外を送出する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| セッションスコープ並行アクセスポリシー | concurrentAccessPolicy | String | 任意指定(デフォルト="CONCURRENT") |
-| セッション書込エラーメッセージID | conflictWarningMessageId | String | 任意指定 |
-
-**基本設定**
-
-以下は **CONCURRENT** ポリシーを使用する設定例である。
-
-```xml
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-StatusCodeConvertHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-StatusCodeConvertHandler.md
deleted file mode 100644
index ed31c9406..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-StatusCodeConvertHandler.md
+++ /dev/null
@@ -1,75 +0,0 @@
-## ステータスコード→プロセス終了コード変換ハンドラ
-
-**クラス名:** `nablarch.fw.handler.StatusCodeConvertHandler`
-
------
-
------
-
-### 概要
-
-ステータスコードをプロセスの終了コードに変換するハンドラ。
-
-[共通起動ランチャ](../../component/handlers/handlers-Main.md) の直後のハンドラとして設定することにより、
-後続ハンドラによる処理結果のステータスコード値をプロセスの終了コードに変換するハンドラである。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| 共通起動ランチャ | nablarch.fw.handler.Main | CommandLine | Integer | Javaコマンドから直接実行することで、DIリポジトリを初期化し、ハンドラキューを構築・実行する。 | 後続ハンドラの処理結果(整数値)を終了コードに指定し、プロセスを停止する。 | Fatalログを出力しプロセスを異常終了させる。 |
-| ステータスコード→プロセス終了コード変換 | nablarch.fw.handler.StatusCodeConvertHandler | CommandLine | Integer | - | 後続ハンドラの処理結果をもとに、プロセス終了コード(整数値)を決定して返す。 | - |
-| グローバルエラーハンドラ | nablarch.fw.handler.GlobalErrorHandler | Object | Result | - | - | 全ての実行時例外・エラーを捕捉し、ログ出力を行う |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [共通起動ランチャ](../../component/handlers/handlers-Main.md) | [共通起動ランチャ](../../component/handlers/handlers-Main.md) では、本ハンドラの戻り値を終了コードとして使用する。 |
-| [グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) | 本ハンドラでは例外制御は行なわないため、後続ハンドラで例外/エラーが送出された場合は [共通起動ランチャ](../../component/handlers/handlers-Main.md) に対してそのまま送出される。 そのため、本ハンドラの直後に [グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) を配置し、 本ハンドラに対してエラーが送出されないようにする必要がある。 |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラに対する処理委譲)**
-
-ハンドラキュー上の後続ハンドラに対して処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**2. (ステータスコードからプロセス終了コードを決定)**
-
-**1.** で後続のハンドラから返された処理結果オブジェクトのステータスコード値をもとに、
-プロセス終了コードを決定して返す。
-
-| ステータスコード | プロセス終了コード |
-|---|---|
-| -1 以下 | 1 |
-| 0 | 0 |
-| 1 ~ 199 | (ステータスコードと同じ) |
-| 200 ~ 399 | 0 |
-| 400 | 10 |
-| 401 | 11 |
-| 403 | 12 |
-| 404 | 13 |
-| 409 | 14 |
-| 上記以外の400~499 | 15 |
-| 500以上 | 20 |
-
-**[例外処理]**
-
-**1a. (後続ハンドラ処理中のエラー)**
-
-後続ハンドラの処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラには特段の設定項目は無い。
-以下はDIリポジトリ設定ファイルへの記述例である。
-
-```xml
-
-```
-
-終了コードをプロジェクト固有の体系に変更したい場合は、本ハンドラ自体を別実装したものに差し替えること。
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ThreadContextClearHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ThreadContextClearHandler.md
deleted file mode 100644
index 38e24a10d..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ThreadContextClearHandler.md
+++ /dev/null
@@ -1,53 +0,0 @@
-## スレッドコンテキスト変数削除ハンドラ
-
-**クラス名:** `nablarch.common.handler.threadcontext.ThreadContextClearHandler`
-
------
-
------
-
-### 概要
-
-[スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md#スレッドコンテキスト変数管理ハンドラ) で設定したスレッドローカル上の変数を削除するハンドラである。
-
-> **Note:**
-> 本ハンドラは極力手前側に配置すること。
-> なぜなら往路処理では、本ハンドラより手前のハンドラではスレッドコンテキストにアクセスできなくなるため。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| スレッドコンテキスト変数削除ハンドラ | nablarch.common.handler.threadcontext.ThreadContextClearHandler | Object | Object | - | ThreadContextHandlerで設定したスレッドローカル上の変数を削除する | ThreadContextHandlerで設定したスレッドローカル上の変数を削除する |
-| スレッドコンテキスト変数設定ハンドラ(メインスレッド) | nablarch.common.handler.ThreadContextHandler_main | Object | Object | 起動引数の内容からリクエストID、ユーザID等のスレッドコンテキスト変数を初期化する。 | - | - |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (後続ハンドラへの処理委譲)**
-
-往路では何もせずに後続のハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**2. (正常終了)**
-
-[スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md#スレッドコンテキスト変数管理ハンドラ) で設定したスレッドローカル上の変数を削除する。
-
-**[例外処理]**
-
-**1. (エラー終了)**
-
-後続ハンドラの処理中にエラーが発生した場合も、 [スレッドコンテキスト変数管理ハンドラ](../../component/handlers/handlers-ThreadContextHandler.md#スレッドコンテキスト変数管理ハンドラ) で設定したスレッドローカル上の変数を削除する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの実装内容は基本的に変更不要なものであり、そのまま使用することができる。
-以下はDIリポジトリ設定ファイルへの記述例である。
-
-```xml
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ThreadContextHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ThreadContextHandler.md
deleted file mode 100644
index 47aef7de0..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-ThreadContextHandler.md
+++ /dev/null
@@ -1,104 +0,0 @@
-## スレッドコンテキスト変数管理ハンドラ
-
-**クラス名:** `nablarch.common.handler.threadcontext.ThreadContextHandler`
-
------
-
------
-
-### 概要
-
-本ハンドラでは、スレッドコンテキスト上の各属性値について、設定ファイルの内容に沿った初期化処理を
-リクエスト毎に行うハンドラである。
-
-**スレッドコンテキスト** とは、リクエストIDやユーザIDなど、同一の処理スレッド内で共有する値を
-スレッドローカル領域上に保持するための仕組みである。
-
-スレッドコンテキスト自体の解説については、 [同一スレッド内でのデータ共有(スレッドコンテキスト)](../../component/libraries/libraries-thread-context.md) を参照すること。
-
-> **Note:**
-> 本ハンドラで設定したスレッドローカル上の値は、 [スレッドコンテキスト変数削除ハンドラ](../../component/handlers/handlers-ThreadContextClearHandler.md#スレッドコンテキスト変数削除ハンドラ) を使用して、復路処理で削除を行うこと。
-> 往路処理にて本ハンドラより手前のハンドラでスレッドコンテキストにアクセスした場合、 値を取得することはできないため本ハンドラより手前ではスレッドコンテキストにアクセスしないよう注意すること。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| スレッドコンテキスト変数削除ハンドラ | nablarch.common.handler.threadcontext.ThreadContextClearHandler | Object | Object | - | ThreadContextHandlerで設定したスレッドローカル上の変数を削除する | ThreadContextHandlerで設定したスレッドローカル上の変数を削除する |
-| スレッドコンテキスト変数設定ハンドラ(メインスレッド) | nablarch.common.handler.ThreadContextHandler_main | Object | Object | 起動引数の内容からリクエストID、ユーザID等のスレッドコンテキスト変数を初期化する。 | - | - |
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (スレッドコンテキストのクリア)**
-
-スレッドローカル上に保持されているスレッドコンテキスト変数のMapの内容を全てクリアする。
-
-**2. (スレッドコンテキスト属性の初期化)**
-
-本ハンドラに設定された **スレッドコンテキスト属性定義リスト** の内容に沿って初期化処理を実行する。
-
-**3. (後続ハンドラの実行)**
-
-ハンドラキュー上の後続ハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**4. (正常終了)**
-
-**3.** で取得した処理結果オブジェクトをそのままリターンして終了する。
-
-**[例外処理]**
-
-**3a. (エラー終了)**
-
-後続ハンドラの処理中にエラーが発生した場合は、そのまま再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| スレッドコンテキスト属性リスト | attributes | List | 必須指定 |
-
-**基本設定**
-
-以下は標準的なスレッドコンテキストの設定例である。
-詳細は、 [同一スレッド内でのデータ共有(スレッドコンテキスト)](../../component/libraries/libraries-thread-context.md) を参照すること。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-TransactionManagementHandler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-TransactionManagementHandler.md
deleted file mode 100644
index 0850f9da4..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-TransactionManagementHandler.md
+++ /dev/null
@@ -1,171 +0,0 @@
-## トランザクション制御ハンドラ
-
-**クラス名:** `nablarch.common.handler.TransactionManagementHandler`
-
------
-
------
-
-### 概要
-
-データベースやメッセージキューなどのトランザクションに対応したリソースを使用し、
-後続処理における透過的トランザクションを実現するハンドラ。
-
-トランザクション機能の詳細については、
-[トランザクション管理](../../component/libraries/libraries-03-TransactionManager.md) 機能の項を参照すること。
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 | コールバック |
-|---|---|---|---|---|---|---|---|
-| データベース接続管理ハンドラ | nablarch.common.handler.DbConnectionManagementHandler | Object | Object | 業務処理用DB接続を取得し、スレッドローカル上に保持する。 | 業務処理用DB接続を開放(プールに返却)する。 | 業務処理用DB接続を開放(プールに返却)する。 | - |
-| トランザクション制御ハンドラ | nablarch.fw.common.handler.TransactionManagementHandler | Object | Object | 業務トランザクションの開始 | トランザクションをコミットする。 | トランザクションをロールバックする。 | 1.コミット完了後 / 2.ロールバック後 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [データベース接続管理ハンドラ](../../component/handlers/handlers-DbConnectionManagementHandler.md) | このハンドラの上位に配置することで、本ハンドラが管理するトランザクションに DB接続を参加させることができる。 |
-
-**コールバック**
-
-本ハンドラではトランザクションに関連した以下のイベントリスナを定義している。
-後続のハンドラで実装することにより、本ハンドラ実行中にコールバックを受けることができる。
-
-| インターフェース | メソッド | イベント |
-|---|---|---|
-| [TransactionEventCallback](../../javadoc/nablarch/fw/TransactionEventCallback.html) | transactionNormalEnd() | トランザクションコミット直後に呼ばれる。 |
-| | transactionAbnormalEnd() | トランザクションロールバック直後に呼ばれる。 |
-
-なお、 **transactionAbnormalEnd()** は業務トランザクションのロールバック後に実行されるため、
-個別のトランザクション内で実行される。また、このトランザクションはコールバック完了後
-自動的にコミット/ロールバックされる。
-
-### ハンドラ処理フロー
-
-**[往路処理]**
-
-**1. (トランザクションオブジェクトの獲得)**
-
-このハンドラに設定されている **トランザクションファクトリ** を用いて、
-スレッドローカル上のDB接続に対するトランザクションを作成する。
-
-**1a. (DB接続未設定エラー)**
-
-本ハンドラに設定された **スレッドローカル登録名** に対するDB接続がスレッドローカル上に設定されていなかった場合は
-実行時例外を送出して終了する。
-
-**2. (スレッドローカルへの登録)**
-
-**1.** で取得したトランザクションオブジェクトを、スレッドローカル変数上のMapに登録する。
-キー名は、本ハンドラに設定された **スレッドローカル登録名** を使用する。
-
-**2a. (トランザクション重複登録エラー)**
-
-スレッドローカル上に同一の登録名で既にトランザクションが設定されていた場合は、実行時例外を送出して終了する。
-
-**3. (トランザクション開始とハンドラキューの実行)**
-
-トランンザクションを開始し、ハンドラキュー上の後続ハンドラに処理を委譲し、その結果を取得する。
-
-**[復路処理]**
-
-**4. (トランザクションコミット)**
-
-後続ハンドラの処理が正常終了した場合、トランザクションをコミットする。
-
-**5. (コールバックの呼び出し)**
-
-後続ハンドラの内、 **TransactionEventCallback** を実装しているものについて、
-以下のコールバックメソッドを呼び出す。:
-
-```
-TransactionEventCallback#transactionNormalEnd(Object data, ExecutionContext context): void
-```
-
-**6. (終端処理)**
-
-スレッドローカルからトランザクションを除去した上で、トランザクションをクローズする。
-
-**7. (正常終了)**
-
-**3.** で取得した後続ハンドラの処理結果をリターンし終了する。
-
-**[例外処理]**
-
-**3a, 4a.(トランザクションロールバック)**
-
-後続ハンドラの処理中およびトランザクションのコミット時に例外が送出された場合は、トランザクションをロールバックし、
-以下のコールバックメソッドを呼び出す。:
-
-```
-TransactionEventCallback#transactionAbnormalEnd(Object data, ExecutionContext context): void
-```
-
-**6.** の終端処理を実行後、元例外を再送出して終了する。
-
-**3b. (コミット対象エラー)**
-
-後続ハンドラの処理中に送出された実行時例外が本ハンドラに設定された **コミット対象例外クラスリスト** に含まれていた場合は、
-**3a.** のロールバック処理は行わず、かわりに **4.** 、 **5.** 、 **6.** の各処理を実行し、送出された例外を再送出して終了する。
-
-### 設定項目・拡張ポイント
-
-本ハンドラの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| トランザクションファクトリ | transactionFactory | nablarch.core.transaction .TransactionFactory | (必須指定) |
-| スレッドローカル登録名 | transactionName | String | (任意指定) カレントスレッドで使用するトランザクションを識別する 文字列。 複数のトランザクションを利用する場合に指定する。 またトランザクションとDBコネクションの登録名は一致させる 必要がある。 省略した場合は既定の接続名("transaction")使用する。 |
-| コミット対象例外クラスリスト | transactionCommitExceptioins | List | (任意指定) このハンドラで捕捉してもそのままコミットする実行時例外 のリスト。クラスの完全修飾名のリストを設定する。 |
-
-**トランザクションファクトリ** の設定方法については
-[トランザクション管理](../../component/libraries/libraries-03-TransactionManager.md)
-を参照すること。
-
-**基本設定**
-
-```xml
-
-
-
-
-```
-
-デフォルトの設定では、トランザクションが暗黙的に使用する接続名
-に対して接続オブジェクトを登録する。
-接続名を明示的に指定する場合は、属性dbConnectionNameにその値を設定する。
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-**特定の例外が発生した場合はロールバックせずにそのままコミットする**
-
-```xml
-
-
-
-
-
-
- example.TransactionCommitException
- example.TransactionCommitException2
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-WebFrontController.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-WebFrontController.md
deleted file mode 100644
index 65c552c52..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-WebFrontController.md
+++ /dev/null
@@ -1,91 +0,0 @@
-## Webフロントコントローラ (サーブレットフィルタ)
-
-**クラス名:** `nablarch.fw.web.servlet.WebFrontController`
-
------
-
------
-
-### 概要
-
-[画面オンライン実行制御基盤](../../processing-pattern/web-application/web-application-web-gui.md) において、サーブレットコンテナから直接コールバックされ、
-ハンドラキューの実行の起点となるクラスである。
-
-サーブレットコンテキスト上にサーブレットフィルタとしてデプロイされる。
-
------
-
-**ハンドラ処理概要**
-
-| ハンドラ | クラス名 | 入力型 | 結果型 | 往路処理 | 復路処理 | 例外処理 |
-|---|---|---|---|---|---|---|
-| Nablarchサーブレットコンテキスト初期化リスナ | nablarch.fw.web.servlet.NablarchServletContextListener | - | - | サーブレットコンテキスト初期化時に、リポジトリおよびハンドラキューの初期化処理を行う。 | - | Fatalログを出力した上で再送出する。(デプロイエラーになる。) |
-| Webフロントコントローラ (サーブレットフィルタ) | nablarch.fw.web.servlet.WebFrontController | ServletRequest/Response | - | HttpServletRequest/HttpServletResponseからHTTPリクエストオブジェクトを作成し、ハンドラキューに処理を委譲する。 | (Webコンテナ側に制御を戻す。) | このハンドラでは例外およびエラーの捕捉は行なわず、そのまま送出する。 |
-
-**関連するハンドラ**
-
-| ハンドラ | 内容 |
-|---|---|
-| [Nablarchサーブレットコンテキスト初期化リスナ](../../component/handlers/handlers-NablarchServletContextListener.md) | 本クラスは **NablarchServletContextListener** によって初期化される。 |
-
-### 処理フロー
-
-**[往路処理]**
-
-**1. (HTTPリクエストオブジェクト、実行コンテキストの生成)**
-
-`HttpServletRequest`/`HttpServletResponse` をラップした
-HTTPリクエストオブジェクトおよび実行コンテキストを生成する。
-
-**2. (ハンドラキューに対する処理委譲)**
-
-このサーブレットフィルタに設定されたハンドラキュー内の先頭ハンドラを、
-**2.** で作成したHTTPリクエストオブジェクトおよび実行コンテキストを引数として
-実行する。
-
-**[往路処理]**
-
-**3. (正常終了)**
-
-ハンドラキューでの処理が正常に終了した時点で、当該リクエストに対する処理を終了し、
-サーブレットコンテナ側に制御を戻す。
-
-**[例外処理]**
-
-**3a. (後続ハンドラ処理中のエラー)**
-
-ハンドラキューでの処理中に例外が送出された場合、特段の例外制御は行なわず
-発生した例外をそのまま送出する。
-
-ただし、標準ハンドラ構成では、このハンドラの直後に [グローバルエラーハンドラ](../../component/handlers/handlers-GlobalErrorHandler.md) が配置されるため、
-サーバプロセスの継続に影響するような特定の致命的エラーを除けば、ここで例外を捕捉することは無い。
-
-### 設定項目・拡張ポイント
-
-本クラスの設定項目の一覧は以下のとおり。
-
-| 設定項目 | プロパティ名 | データ型 | 備考 |
-|---|---|---|---|
-| ハンドラキュー | handlerQueue | List | 必須指定 |
-
-**標準設定**
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-handler.md b/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-handler.md
deleted file mode 100644
index 8527c6914..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/handlers/handlers-handler.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# ハンドラリファレンス
-
-## 汎用のハンドラ
-
-DataReadHandler
-GlobalErrorHandler
-FileRecordWriterDisposeHandler
-RequestPathJavaPackageMapping
-RequestHandlerEntry
-ThreadContextHandler
-ThreadContextClearHandler
-DbConnectionManagementHandler
-TransactionManagementHandler
-PermissionCheckHandler
-ServiceAvailabilityCheckHandler
-SessionConcurrentAccessHandler
-RetryHandler
-
-## 画面オンライン処理用ハンドラ
-
-NablarchServletContextListener
-WebFrontController
-HttpCharacterEncodingHandler
-HttpResponseHandler
-HttpErrorHandler
-ForwardingHandler
-ResourceMapping
-NablarchTagHandler
-HttpAccessLogHandler
-MultipartHandler
-HttpRequestJavaPackageMapping
-HttpRewriteHandler
-KeitaiAccessHandler
-
-## バッチ処理用ハンドラ
-
-Main
-StatusCodeConvertHandler
-ProcessStopHandler
-DuplicateProcessCheckHandler
-ProcessResidentHandler
-LoopHandler
-MultiThreadExecutionHandler
-
-## メッセージング処理用ハンドラ
-
-MessagingContextHandler
-MessageResendHandler
-MessageReplyHandler
-RequestThreadLoopHandler
-
-## 業務アクションハンドラ
-
-HttpMethodBinding
-BatchAction
-FileBatchAction
-NoInputDataBatchAction
-MessagingAction
-AsyncMessageReceiveAction
-AsyncMessageSendAction
diff --git a/.claude/skills/nabledge-1.2/docs/component/libraries/libraries-01-FailureLog.md b/.claude/skills/nabledge-1.2/docs/component/libraries/libraries-01-FailureLog.md
deleted file mode 100644
index f4daac71c..000000000
--- a/.claude/skills/nabledge-1.2/docs/component/libraries/libraries-01-FailureLog.md
+++ /dev/null
@@ -1,736 +0,0 @@
-# 障害ログの出力
-
-障害ログは、フレームワーク又はアプリケーションから出力することを想定している。
-フレームワークでは、処理方式毎の例外ハンドラにおいて出力する。
-アプリケーションでは、バッチ処理の障害発生時に後続処理を継続する場合などに出力する。
-
-## 障害ログの出力方針
-
-障害通知ログと障害解析ログで想定している出力方針を下記に示す。
-障害通知ログは、ログ監視ツールから監視することで障害を検知することを想定しているので、
-ロガー名を付けて障害通知専用のファイルに出力する。
-障害解析ログは、アプリケーション全体のログ出力を行うアプリケーションログに出力する。
-
-| ログの種類 | ログレベル | ロガー名 |
-|---|---|---|
-| 障害通知ログ | FATAL、ERROR | MONITOR |
-| 障害解析ログ | FATAL、ERROR | 指定なし(クラス名) |
-
-上記出力方針に対するログ出力の設定例を下記に示す。
-
-log.propertiesの設定例
-
-```bash
-writerNames=monitorFile,appFile
-
-# 障害通知ログの出力先
-writer.monitorFile.className=nablarch.core.log.basic.SynchronousFileLogWriter
-writer.monitorFile.filePath=/var/log/app/monitor.log
-writer.monitorFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter
-writer.monitorFile.formatter.format=<障害通知ログ用のフォーマット>
-writer.monitorFile.lockFilePath=/var/log/lock/monitor.lock
-writer.monitorFile.lockRetryInterval=10
-writer.monitorFile.lockWaitTime=3000
-writer.monitorFile.failureCodeCreateLockFile=MSG00101
-writer.monitorFile.failureCodeReleaseLockFile=MSG00102
-writer.monitorFile.failureCodeForceDeleteLockFile=MSG00103
-writer.monitorFile.failureCodeInterruptLockWait=MSG00104
-
-# アプリケーションログの出力先
-writer.appFile.className=nablarch.core.log.basic.FileLogWriter
-writer.appFile.filePath=/var/log/app/app.log
-writer.appFile.maxFileSize=10000
-writer.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter
-writer.appFile.formatter.format=<アプリケーションログ用のフォーマット>
-
-availableLoggersNamesOrder=MON,ROO
-
-# アプリケーションログの設定
-loggers.ROO.nameRegex=.*
-loggers.ROO.level=INFO
-loggers.ROO.writerNames=appFile
-
-# 障害通知ログの出力設定
-loggers.MON.nameRegex=MONITOR
-loggers.MON.level=ERROR
-loggers.MON.writerNames=monitorFile
-```
-
-## 障害ログの出力項目
-
-障害通知ログと障害解析ログの出力項目を下記に示す。
-障害通知ログと障害解析ログ毎に出力を想定している項目には、Yマークを入れている。
-
-障害通知ログは、ログ監視ツールから通知を受けた運用オペレータが1次切り分け担当者の特定に使用する。
-運用オペレータは、障害通知ログのリクエストIDを参照し、1次切り分け担当者を特定することを想定しているため、
-リクエストIDには、業務コードなど、1次切り分け担当者を特定できるだけの情報(下記ノートを参照)を含める必要がある。
-リクエストIDに1次切り分け担当者を特定できるだけの情報を含めることができない場合は、 [障害の連絡先情報の追加方法](../../component/libraries/libraries-01-FailureLog.md#障害の連絡先情報の追加方法) を使用することで、
-リクエストID毎に連絡先情報をログに含めることができる。
-
-| 項目名 | 説明 | 障害通知 | 障害解析 |
-|---|---|---|---|
-| 出力日時 | ログ出力時のシステム日時。 | Y | Y |
-| 障害レベル | 障害のレベルを判断するために使用する。 | Y | Y |
-| 障害コード | 障害を一意に識別するコード。障害内容の特定に使用する。 | Y | Y |
-| 起動プロセス | 障害が発生したアプリケーションを起動したプロセス名。実行環境の特定に使用する。 | Y | Y |
-| 処理方式区分 | 障害が発生した処理方式の特定に使用する。 | Y | Y |
-| リクエストID | 障害が発生した処理を一意に識別するID。1次切り分け担当者の特定に使用する。 | Y | Y |
-| 実行時ID | 障害が発生した処理の実行を一意に識別するID。 | Y | Y |
-| ユーザID | ログインユーザのユーザID。 | Y | Y |
-| メッセージ | 障害コードに対応するメッセージ。障害内容の特定に使用する。 | Y | Y |
-| 処理対象データ | 障害が発生した処理が対象としていたデータを特定するために使用する。 データリーダを使用して読み込まれたデータオブジェクトのtoStringメソッド を呼び出し出力される。 > **Warning:** > システムのセキュリティ要件により、 > 障害解析ログであっても個人情報や機密情報の出力が許されない場合は、 > この項目に対する出力処理をプロジェクトでカスタマイズすること。 > カスタマイズ方法は、 [プレースホルダのカスタマイズ方法](../../component/libraries/libraries-01-FailureLog.md#プレースホルダのカスタマイズ方法) を参照。 > **Note:** > 処理対象データの出力により、障害ログに派生元実行時情報を出力することができる。 > 派生元実行時情報とは、例えば、画面処理からバッチ処理にデータ連携する場合であれば、 > 画面処理を実行した時点の実行時情報(リクエストIDや実行時IDなど)が > バッチ処理での派生元実行時情報となる。 > 派生元実行時情報の出力方法は、 [派生元実行時情報の出力方法](../../component/libraries/libraries-01-FailureLog.md#派生元実行時情報の出力方法) を参照。 | | Y |
-| スタックトレース | 障害発生箇所の特定に使用する。 | | Y |
-| 付加情報 | フレームワーク又はアプリケーションで追加する付加情報。 | | Y |
-
-障害ログの個別項目は下記となる。残りの項目は、 [BasicLogFormatter](../../component/libraries/libraries-01-Log.md#basiclogformatter) の設定で指定する共通項目となる。
-共通項目と個別項目を組み合わせたフォーマットについては、 [各種ログの共通項目のフォーマット](../../component/libraries/libraries-01-Log.md#各種ログの共通項目のフォーマット) を参照。
-
-* 障害コード
-* メッセージ
-* 処理対象データ
-
-> **Note:**
-> 起動プロセスとリクエストIDは、システムの規模に応じてプロジェクト毎にID体系を規定する。
-> 例えば、大規模なシステムでは、下記のようなID体系となる。
-
-> 起動プロセス:
-
-> サーバ名(8桁)+識別文字列(4桁)・・・識別文字列にはバッチ処理のJOBIDなどが入る。
-
-> リクエストID:
-
-> システムID(1桁)+サブシステムID(2桁)+業務コード(3桁)+画面ID(2桁)+イベントID(2桁)
-
-## 障害ログの出力方法
-
-障害ログの出力に使用するクラスを下記に示す。
-
-
-
-| クラス名 | 概要 |
-|---|---|
-| nablarch.core.log.app.FailureLogUtil | 障害ログを出力するクラス。 |
-| nablarch.core.log.app.FailureLogFormatter | 障害ログの個別項目をフォーマットするクラス。 |
-| nablarch.fw.TransactionAbnormalEnd | トランザクションデータの処理中に異常が発生した場合に送出する例外クラス。 この例外は、フレームワークの例外ハンドラに捕捉され、障害ログの出力に使用される。 この例外に障害コードを指定することで、障害コードに対応するメッセージが障害ログに出力される。 |
-| nablarch.fw.launcher.ProcessAbnormalEnd | アプリケーションを異常終了させる際に送出する例外クラス。 この例外は、TransactionAbnormalEndを継承しており使用方法はTransactionAbnormalEndと同じである。 |
-
-アプリケーションでの障害ログの出力は、下記の2通りの方法がある。
-
-* FailureLogUtilを使用して直接出力する。
-* TransactionAbnormalEndやProcessAbnormalEndを送出し例外ハンドラに出力を依頼する。
-
-障害ログを出力し業務処理を終了する場合は、TransactionAbnormalEndやProcessAbnormalEndを使用する。
-障害ログを出力するが後続の業務処理を継続する場合は、FailureLogUtilを使用する。
-FailureLogUtilを使用した場合は、例外が送出されるわけではないのでトランザクションがコミットされる。
-
-ProcessAbnormalEndの使用例を下記に示す。
-
-※TransactionAbnormalEndを使用した場合の実装例は、ProcessAbnormalEndと全く同じとなる。
-このため、本実装例での説明は省略する。
-
-```java
-// 障害ログを出力し業務処理を終了する場合
-
-// バリデーションエラーの場合
-ValidationContext context =
- ValidationUtil.validateAndConvertRequest("user", UserForm.class, inputData, "registerUser");
-if (!context.isValid()) {
- // 終了コード、バリデーションの例外、障害コードを指定している。
- // 終了コードとはプロセスを終了する際に System#exit(int) メソッドに設定する値である。
- throw new ProcessAbnormalEnd(100, new ApplicationException(context.getMessages()), "UM900001");
-}
-
-// 自ら例外を生成する場合
-if (user == null) {
- // 終了コード、障害コードを指定している。
- throw new ProcessAbnormalEnd(100, "UM900002");
-}
-
-// 例外を捕捉した場合
-try {
- // 業務処理
-} catch (UserNotFoundException e) {
- // 終了コード、捕捉した例外、障害コードを指定している。
- throw new ProcessAbnormalEnd(100, e, "UM900003");
-}
-```
-
-FailureLogUtilの使用例を下記に示す。
-
-```java
-// 障害ログを出力し後続処理を継続する場合
-
-// 障害を検知した場合
-if (user == null) {
- // 処理対象データ、障害コードを指定している。
- FailureLogUtil.logError(inputData, "UM800001");
-}
-
-// 例外を捕捉した場合
-try {
- // 業務処理
-} catch (UserNotFoundException e) {
- // 捕捉した例外、処理対象データ、障害コードを指定している。
- FailureLogUtil.logError(e, inputData, "UM800001");
-}
-```
-
-上記使用例のように、障害ログの出力では、ログから障害内容を特定するために障害コードを指定する。
-障害コードのコード体系は、プロジェクト毎に規定すること。
-
-障害ログに出力されるメッセージは、 [メッセージ管理](../../component/libraries/libraries-07-Message.md) 機能を使用して障害コードに対応するメッセージを取得する。
-[メッセージ管理](../../component/libraries/libraries-07-Message.md) 機能では、メッセージが見つからない場合に例外が発生する。
-メッセージ取得処理で例外が発生した場合は、障害ログとは別に、メッセージ取得処理で発生した例外をWARNレベルでログ出力し、
-障害ログには下記のメッセージを出力する。
-
-```bash
-failed to get the message to output the failure log. failureCode = [<障害コード>]
-```
-
-メッセージが見つからない場合の障害通知ログの出力例を下記に示す。
-
-```bash
-# 障害コード(fail_code = [AP112233])の後にメッセージを出力している。
-2011-02-23 18:23:45.680 -FATAL- usr_id = [9999999999] fail_code = [AP112233] failed to get the message to output the failure log. failureCode = [AP112233]
-```
-
-ソース上で指定した障害コードは、設定によりアプリケーションの実行時に変更することができる。
-アプリケーションの障害コードの変更方法については、 [アプリケーションの障害コードの変更方法](../../component/libraries/libraries-01-FailureLog.md#アプリケーションの障害コードの変更方法) を参照。
-また、フレームワークで例外が発生した場合の障害コードの変更方法については、 [フレームワークの障害コードの変更方法](../../component/libraries/libraries-01-FailureLog.md#フレームワークの障害コードの変更方法) を参照。
-
-フレームワークの例外ハンドラでRuntimeExceptionを捕捉した場合など、障害コードの指定がない場合は、
-設定で指定するデフォルトの障害コードとメッセージを出力する。
-
-## 障害ログの設定方法
-
-FailureLogUtilは、プロパティファイル(app-log.properties)を読み込み、
-FailureLogFormatterオブジェクトを生成して、個別項目のフォーマット処理を委譲する。
-プロパティファイルのパス指定や実行時の設定値の変更方法は、 [各種ログの設定](../../component/libraries/libraries-01-Log.md#各種ログの設定) を参照。
-障害ログの設定例を下記に示す。
-
-app-log.propertiesの設定例
-
-```bash
-failureLogFormatter.className=nablarch.core.log.app.FailureLogFormatter
-failureLogFormatter.defaultFailureCode=ZZ999999
-failureLogFormatter.defaultMessage=an unexpected exception occurred.
-failureLogFormatter.language=en
-failureLogFormatter.notificationFormat=fail_code = [$failureCode$] $message$
-failureLogFormatter.analysisFormat=fail_code = [$failureCode$] $message$
-failureLogFormatter.derivedRequestIdPropName=insertRequestId
-failureLogFormatter.derivedUserIdPropName=updatedUserId
-failureLogFormatter.contactFilePath=classpath:failure-log-contact.properties
-failureLogFormatter.appFailureCodeFilePath=classpath:failure-log-app-codes.properties
-failureLogFormatter.fwFailureCodeFilePath=classpath:failure-log-fw-codes.properties
-```
-
-プロパティの説明を下記に示す。
-
-| プロパティ名 | 設定値 |
-|---|---|
-| failureLogFormatter.className | FailureLogFormatterのクラス名。 デフォルトはnablarch.core.log.app.FailureLogFormatter。 FailureLogFormatterを差し替える場合に指定する。 |
-| failureLogFormatter.defaultFailureCode(必須) | デフォルトの障害コード。 例外ハンドラでRuntimeExceptionを捕捉した場合など、障害コードの指定がない場合に使用する。 |
-| failureLogFormatter.defaultMessage(必須) | デフォルトのメッセージ。 デフォルトの障害コードを使用する場合に出力するメッセージ。 |
-| failureLogFormatter.language | メッセージの言語。 障害コードからメッセージを取得する際に使用する言語。 指定がない場合はThreadContextに設定されている言語を使用する。 |
-| failureLogFormatter.notificationFormat | 障害通知ログの個別項目のフォーマット。 |
-| failureLogFormatter.analysisFormat | 障害解析ログの個別項目のフォーマット。 |
-| failureLogFormatter.contactFilePath | 障害の連絡先情報を指定したプロパティファイルのパス。 障害の連絡先情報を出力する場合に指定する。 詳細は [障害の連絡先情報の追加方法](../../component/libraries/libraries-01-FailureLog.md#障害の連絡先情報の追加方法) を参照。 |
-| failureLogFormatter.appFailureCodeFilePath | アプリケーションの障害コードの変更情報を指定したプロパティファイルのパス。 障害ログ出力時にアプリケーションの障害コードを変更する場合に指定する。 詳細は [アプリケーションの障害コードの変更方法](../../component/libraries/libraries-01-FailureLog.md#アプリケーションの障害コードの変更方法) を参照。 |
-| failureLogFormatter.fwFailureCodeFilePath | フレームワークの障害コードの変更情報を指定したプロパティファイルのパス。 障害ログ出力時にフレームワークの障害コードを変更する場合に指定する。 詳細は [フレームワークの障害コードの変更方法](../../component/libraries/libraries-01-FailureLog.md#フレームワークの障害コードの変更方法) を参照。 |
-
-フォーマットに指定可能なプレースホルダの一覧を下記に示す。
-
-| 項目名 | プレースホルダ |
-|---|---|
-| 障害コード | $failureCode$ |
-| メッセージ | $message$ |
-| 処理対象データ | $data$ |
-| 連絡先 | $contact$ |
-
-デフォルトのフォーマットを下記に示す。
-
-```bash
-fail_code = [$failureCode$] $message$
-```
-
-## 障害ログの出力例
-
-障害ログの出力例を下記に示す。
-データベースに接続できない障害が発生したため、FailureLogFormatterの設定で指定したデフォルトの障害コードとデフォルトのメッセージが出力されている。
-
-app-log.propertiesの設定例
-
-```bash
-# FailureLogFormatterの設定(デフォルトの障害コードと個別項目のフォーマット)
-failureLogFormatter.defaultFailureCode=ZZ999999
-failureLogFormatter.defaultMessage=an unexpected exception occurred.
-failureLogFormatter.notificationFormat=[$failureCode$:$message$]
-failureLogFormatter.analysisFormat=fail_code = [$failureCode$] $message$
-```
-
-log.propertiesの設定例
-
-```bash
-writerNames=monitorFile,appFile
-
-# 障害通知ログの出力先
-writer.monitorFile.className=nablarch.core.log.basic.SynchronousFileLogWriter
-writer.monitorFile.filePath=/var/log/app/monitor.log
-writer.monitorFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter
-writer.monitorFile.formatter.format=$date$ -$logLevel$- [$executionId$] R[$requestId$] U[$userId$] $message$
-writer.monitorFile.lockFilePath=/var/log/lock/monitor.lock
-writer.monitorFile.lockRetryInterval=10
-writer.monitorFile.lockWaitTime=3000
-writer.monitorFile.failureCodeCreateLockFile=MSG00101
-writer.monitorFile.failureCodeReleaseLockFile=MSG00102
-writer.monitorFile.failureCodeForceDeleteLockFile=MSG00103
-writer.monitorFile.failureCodeInterruptLockWait=MSG00104
-
-# アプリケーションログの出力先
-writer.appFile.className=nablarch.core.log.basic.FileLogWriter
-writer.appFile.filePath=/var/log/app/app.log
-writer.appFile.maxFileSize=10000
-writer.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter
-writer.appFile.formatter.format=$date$ -$logLevel$- [$executionId$] R[$requestId$] U[$userId$] $message$$information$$stackTrace$
-
-availableLoggersNamesOrder=MON,ROO
-
-# アプリケーションログの設定
-loggers.ROO.nameRegex=.*
-loggers.ROO.level=INFO
-loggers.ROO.writerNames=appFile
-
-# 障害通知ログの出力設定
-loggers.MON.nameRegex=MONITOR
-loggers.MON.level=ERROR
-loggers.MON.writerNames=monitorFile
-```
-
-ログの出力例
-
-```bash
-# 障害通知ログ
-2011-02-15 14:47:17.745 -FATAL- [APUSRMGR0001201102151447176990004] R[USERS00101] U[0000000001] [ZZ999999:an unexpected exception occurred.]
-
-# 障害解析ログ
-2011-02-15 14:47:17.745 -FATAL- [APUSRMGR0001201102151447176990004] R[USERS00101] U[0000000001] fail_code = [ZZ999999] an unexpected exception occurred.
-Stack Trace Information :
-nablarch.core.db.DbAccessException: failed to get database connection.
- at nablarch.core.db.connection.BasicDbConnectionFactoryForDataSource.getConnection(BasicDbConnectionFactoryForDataSource.java:35)
- at nablarch.common.handler.DbConnectionManagementHandler.handle(DbConnectionManagementHandler.java:72)
- at nablarch.common.handler.DbConnectionManagementHandler.handle(DbConnectionManagementHandler.java:1)
- at nablarch.fw.ExecutionContext.handleNext(ExecutionContext.java:59)
- # 以降のスタックトレースは省略。
-```
-
-## 障害の連絡先情報の追加方法
-
-障害ログの出力では、リクエストIDに1次切り分け担当者を特定するための情報として、業務コードなどを含めることを推奨している。
-しかし、プロジェクトによっては、リクエストIDに1次切り分け担当者を特定するための情報を含めることができないケースが考えられる。
-このため、障害ログの出力では、リクエストID毎に1次切り分け担当者の連絡先情報を指定する機能を提供する。
-
-連絡先情報の追加は、プロパティファイルに指定する。キーにリクエストID、値に連絡先情報を指定する。
-キーに指定されたリクエストIDは、ThreadContextから取得したリクエストIDに対して、前方一致で検索する。
-このため、プロパティファイルの内容は読み込み後に、より限定的なリクエストIDから検索するように、キー名の長さの降順にソートする。
-
-連絡先情報の追加例を下記に示す。
-
-ます、プロパティファイルを準備する。
-"failure-log-contact.properties"というファイル名でクラスパス直下に配置しているものとする。
-
-failure-log-contact.propertiesの設定例
-
-```bash
-# リクエストID=連絡先情報
-USERS=USRMGR999
-USERS003=USRMGR300
-USERS00301=USRMGR301
-USERS00302=USRMGR302
-USERS00303=USRMGR303
-```
-
-上記プロパティファイルは、読み込み後下記の通りソートされ、上から順に検索に使用する。
-
-```bash
-# 上3つの並び順は、キー名の長さが等しいため、実行毎に変わる。
-USERS00301=USRMGR301
-USERS00302=USRMGR302
-USERS00303=USRMGR303
-USERS003=USRMGR300
-USERS=USRMGR999
-```
-
-次に、障害ログのフォーマットで連絡先情報を表すプレースホルダ$contact$を指定する。
-さらに、プロパティファイルのパスを指定する。
-
-app-log.propertiesの設定例
-
-```bash
-# FailureLogFormatterの設定
-failureLogFormatter.defaultFailureCode=ZZ999999
-failureLogFormatter.defaultMessage=an unexpected exception occurred.
-failureLogFormatter.notificationFormat=[$failureCode$:$message$] <$contact$>
-failureLogFormatter.analysisFormat=fail_code = [$failureCode$] $message$ <$contact$>
-failureLogFormatter.contactFilePath=classpath:failure-log-contact.properties
-```
-
-上記の設定により、リクエストID毎に連絡先情報が出力される。
-リクエストIDが"USERS00302"の場合に発生した障害の出力例を下記に示す。
-$contact$を指定した箇所(<>で囲った部分)に"USRMGR"が出力される。
-
-```bash
-# 障害通知ログ
-2011-02-15 15:09:57.691 -FATAL- [APUSRMGR0001201102151509320020009] R[USERS00302] U[0000000001] [ZZ999999:an unexpected exception occurred.]
-
-# 障害解析ログ
-2011-02-15 15:09:57.707 -FATAL- [APUSRMGR0001201102151509320020009] R[USERS00302] U[0000000001] fail_code = [ZZ999999] an unexpected exception occurred.
-# スタックトレースは省略。
-```
-
-リクエストIDに対応する連絡先情報が見つからない場合はnullが出力される。
-連絡先情報が見つからない場合の障害通知ログの出力例を下記に示す。
-
-```bash
-# 障害通知ログ
-# プロパティファイルにリクエストID"USERS00333"が定義されていないので連絡先情報はnullとなる。
-2011-02-15 15:09:57.691 -FATAL- [APUSRMGR0001201102151509320020009] R[USERS00333] U[0000000001] [ZZ999999:an unexpected exception occurred.]
-```
-
-## アプリケーションの障害コードの変更方法
-
-アプリケーションでは、TransactionAbnormalEnd(ProcessAbnormalEnd)やFailureLogUtilを使用して障害ログの出力を行う。
-この場合、アプリケーションでは、ソースコード上に直接障害コードを書き込む(ハードコーディング)。
-障害ログの出力では、ソースコードに修正を加えることなく、アプリケーションの実行時にソースコード上にハードコードされた障害コードを変更することができる。
-
-障害コードの変更は、プロパティファイルに指定する。
-プロパティファイルには、ソースコード上の障害コード毎に出力に使用する障害コードを指定する。
-
-アプリケーションの障害コードの変更例を下記に示す。
-アプリケーションで下記のProcessAbnormalEndを送出していることを想定する。
-※TransactionAbnormalEndの使用方法は、ProcessAbnormalEndと全く同じであるためここでの説明は省略する。
-
-```java
-if (userId == null) {
- throw new ProcessAbnormalEnd(100, "UM900003");
-}
-```
-
-ます、プロパティファイルを準備する。
-"failure-log-app-codes.properties"というファイル名でクラスパス直下に配置しているものとする。
-
-failure-log-app-codes.propertiesの設定例
-
-```bash
-# ソース上の障害コード=出力に使用する障害コード
-UM900003=MSG9003
-```
-
-次に、FailureLogFormatterの設定でプロパティファイルのパスを指定する。
-
-app-log.propertiesの設定例
-
-```bash
-# FailureLogFormatterの設定
-failureLogFormatter.defaultFailureCode=ZZ999999
-failureLogFormatter.defaultMessage=an unexpected exception occurred.
-failureLogFormatter.notificationFormat=[$failureCode$:$message$]
-failureLogFormatter.analysisFormat=fail_code = [$failureCode$] $message$
-failureLogFormatter.appFailureCodeFilePath=classpath:failure-log-app-codes.properties
-```
-
-上記の設定により、ソース上で指定された障害コード毎に出力に使用する障害コードが変更される。
-ProcessAbnormalEndが送出された場合の出力例を下記に示す。
-障害コードが"UM900003"から"MSG9003"に変更されて出力される。
-
-```bash
-# 障害通知ログ
-2011-02-15 15:52:30.394 -FATAL- [APUSRMGR0001201102151552085470006] R[USERS00302] U[0000000001] [MSG9003:userId was invalid.]
-
-# 障害解析ログ
-2011-02-15 15:52:30.394 -FATAL- [APUSRMGR0001201102151552085470006] R[USERS00302] U[0000000001] fail_code = [MSG9003] userId was invalid.
-# スタックトレースは省略。
-```
-
-ソース上で指定された障害コードに対応する出力に使用する障害コードが見つからない場合は、ソース上で指定された障害コードを使用する。
-
-## フレームワークの障害コードの変更方法
-
-フレームワークでは、想定しないエラーが発生した際にRuntimeException系の例外を送出している。
-その結果、フレームワークが送出した例外は、全てデフォルトの障害コードが使用されて障害ログが出力される。
-障害監視において、障害コードにより監視対象をフィルタリングしたいケースが考えられるため、
-障害ログの出力では、フレームワークの障害コードを指定する機能を提供する。
-
-フレームワークの障害コードは、例外が送出されたクラス名毎に指定することができる。
-「例外が送出されたクラス」とは、スタックトレースのルート要素を指している。
-例えば、下記のスタックトレースであれば、nablarch.core.message.StringResourceHolderクラスとなる。
-
-```bash
-Stack Trace Information :
-java.lang.RuntimeException: ValidateFor method invocation failed. targetClass = java.lang.Class, method = validateForRegisterUser
- at nablarch.core.validation.ValidationManager.validateAndConvert(ValidationManager.java:202)
- # 途中のスタックトレースは省略。
-Caused by: nablarch.core.message.MessageNotFoundException: message was not found. message id = MSG00010
- at nablarch.core.message.StringResourceHolder.get(StringResourceHolder.java:40)
- # 以降のスタックトレースは省略。(以降Caused byは出現しない)
-```
-
-ただし、フレームワークのクラス毎に障害コードを設定するのは、分類が細かすぎるため現実的ではない。
-基本はパッケージ名単位に障害コードを指定することで、フレームワークのどの機能で例外が送出されたか判断することができる。
-
-フレームワークの障害コードは、プロパティファイルに指定する。
-プロパティファイルでは、キーにフレームワークのパッケージ名、値に障害コードを指定する。
-キーに指定されたパッケージ名は、スタックトレースから取得した例外が送出されたクラスのFQCN(完全修飾クラス名)に対して、前方一致で検索する。
-このため、プロパティファイルの内容は読み込み後に、より限定的なパッケージ名から検索するように、キー名の長さの降順にソートする。
-
-フレームワークの障害コードの変更例を下記に示す。
-
-ます、プロパティファイルを準備する。
-"failure-log-fw-codes.properties"というファイル名でクラスパス直下に配置しているものとする。
-nablarchというパッケージ名を指定することで、個別に指定していない全てのパッケージに対して障害コードを指定できる。
-
-failure-log-fw-codes.propertiesの設定例
-
-```bash
-# フレームワークのパッケージ名=障害コード
-nablarch=FW999999
-nablarch.core.cache=FW020100
-nablarch.core.date=FW020200
-nablarch.core.db=FW020300
-nablarch.core.message=FW020400
-nablarch.core.repository=FW020500
-nablarch.core.transaction=FW020600
-```
-
-上記プロパティファイルは、読み込み後下記の通りソートされ、上から順に検索に使用する。
-
-```bash
-nablarch.core.transaction=FW020600
-nablarch.core.repository=FW020500
-nablarch.core.message=FW020400
-nablarch.core.cache=FW020100
-nablarch.core.date=FW020200
-nablarch.core.db=FW020300
-nablarch=FW999999
-```
-
-次に、FailureLogFormatterの設定でプロパティファイルのパスを指定する。
-
-app-log.propertiesの設定例
-
-```bash
-# FailureLogFormatterの設定
-failureLogFormatter.defaultFailureCode=ZZ999999
-failureLogFormatter.defaultMessage=an unexpected exception occurred.
-failureLogFormatter.notificationFormat=[$failureCode$:$message$]
-failureLogFormatter.analysisFormat=fail_code = [$failureCode$] $message$
-failureLogFormatter.fwFailureCodeFilePath=classpath:failure-log-fw-codes.properties
-```
-
-上記の設定により、フレームワークの障害コードが変更される。
-障害通知ログでいくつか出力例を下記に示す。
-
-nablarch.core.date.BasicBusinessDateProviderクラスで例外を送出した場合
-
-```bash
-# プロパティファイルのnablarch.core.date=FW020200が該当する。
-2011-02-15 16:48:54.993 -FATAL- [APUSRMGR0001201102151648315060002] R[LOGIN00102] U[9999999999] fail_code = [FW020200] segment was not found. segment:00.
-Stack Trace Information :
-java.lang.IllegalStateException: segment was not found. segment:00.
- at nablarch.core.date.BasicBusinessDateProvider.getDate(BasicBusinessDateProvider.java:103)
- # 以降のスタックトレースは省略。
-```
-
-nablarch.core.message.StringResourceHolderクラスで例外を送出した場合
-
-```bash
-# プロパティファイルのnablarch.core.message=FW020400が該当する。
-2011-02-15 16:54:06.413 -FATAL- [APUSRMGR0001201102151653476260011] R[USERS00201] U[0000000001] fail_code = [FW020400] ValidateFor method invocation failed. targetClass = java.lang.Class, method = validateForRegisterUser
-Stack Trace Information :
-java.lang.RuntimeException: ValidateFor method invocation failed. targetClass = java.lang.Class, method = validateForRegisterUser
- at nablarch.core.validation.ValidationManager.validateAndConvert(ValidationManager.java:202)
- # 途中のスタックトレースは省略。
-Caused by: nablarch.core.message.MessageNotFoundException: message was not found. message id = MSG00010
- at nablarch.core.message.StringResourceHolder.get(StringResourceHolder.java:40)
- # 以降のスタックトレースは省略。
-```
-
-nablarch.common.authentication.PasswordAuthenticatorクラスで例外を送出した場合
-
-```bash
-# プロパティファイルのnablarch=FW999999が該当する。
-2011-02-15 16:59:03.076 -FATAL- [APUSRMGR0001201102151658551890017] R[LOGIN00102] U[9999999999] fail_code = [FW999999] authentication failed.
-Stack Trace Information :
-nablarch.common.authentication.AuthenticationFailedException
- at nablarch.common.authentication.PasswordAuthenticator.authenticate(PasswordAuthenticator.java:302)
- # 以降のスタックトレースは省略。
-```
-
-## 派生元実行時情報の出力方法
-
-派生元実行時情報とは、例えば、画面処理からバッチ処理にデータ連携する場合であれば、
-画面処理を実行した時点の実行時情報がバッチ処理での派生元実行時情報となる。
-以降では、処理方式間でデータ連携した場合に、先に処理を行う側を前段処理、後に処理を行う側を後段処理と呼ぶ。
-後段処理における障害発生時に、前段処理の追跡作業を軽減するために派生元実行時情報を出力する。
-
-派生元実行時情報の出力には、本機能のプレースホルダ「$data$」が使用できる。
-プレースホルダ「$data$」が指定された場合、データリーダを使用して読み込まれたデータが障害ログに出力される。
-この機能を使用して、前段処理において予め実行時情報をデータに含めておくことで、
-後段処理の障害発生時に処理対象データとして前段処理の実行時情報が出力されることになる。
-
-前段処理における実行時情報の設定には、 [オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)](../../component/libraries/libraries-04-ObjectSave.md#オブジェクトのフィールドの値のデータベースへの登録機能オブジェクトのフィールド値を使用した検索機能) を使用する。
-スレッドコンテキストに設定されたリクエストID、実行時ID、ユーザIDをオブジェクトに設定するアノテーションを提供している。
-アノテーションの詳細については、 [AutoPropertyHandlerの実装クラス](../../component/libraries/libraries-04-ObjectSave.md#nablarchcoredbstatementsqlconvertorパッケージ) を参照。
-
-ここでは、データベースを使用したデータ連携における派生元実行時情報の出力例を示す。
-前段処理において下記のカラム名で実行時情報が設定されていることとする。
-
-| 項目 | カラム名 |
-|---|---|
-| リクエストID | INSERT_REQUEST_ID |
-| 実行時ID | INSERT_EXECUTION_ID |
-| ユーザID | UPDATED_USER_ID |
-
-app-log.propertiesの設定例
-
-```bash
-# FailureLogFormatterの設定
-failureLogFormatter.defaultFailureCode=MSG99999
-failureLogFormatter.defaultMessage=an unexpected exception occurred.
-failureLogFormatter.notificationFormat=fail_code = [$failureCode$] $message$
-# 処理対象データのプレースホルダ「data」を障害解析ログのフォーマットに指定する。
-failureLogFormatter.analysisFormat=fail_code = [$failureCode$] $message$\nInput Data :\n$data$
-```
-
-障害解析ログの出力例
-
-```bash
-# 障害解析ログ
-2011-09-26 21:06:35.745 -FATAL- root [EXECUTION_ID_0000000123456789] boot_proc = [] proc_sys = [] req_id = [RB11AC0160] usr_id = [batchuser1] fail_code = [NB11AA0107] ユーザ情報の登録に失敗しました。
-Input Data :
-{MOBILE_PHONE_NUMBER_AREA_CODE=002, KANJI_NAME=山本太郎, USER_INFO_ID=00000000000000000113, INSERT_EXECUTION_ID=EXECUTION_ID_2000000123456789, MAIL_ADDRESS=yamamoto@sample.com, MOBILE_PHONE_NUMBER_CITY_CODE=0003, UPDATED_USER_ID=batch_user, MOBILE_PHONE_NUMBER_SBSCR_CODE=0004, KANA_NAME=ヤマモトタロウ, EXTENSION_NUMBER_BUILDING=13, LOGIN_ID=12345678901234567890, EXTENSION_NUMBER_PERSONAL=1235, INSERT_REQUEST_ID=RB11AC0140}
-Stack Trace Information :
-[100 TransactionAbnormalEnd] ユーザ情報の登録に失敗しました。
- at nablarch.sample.ss11AC.B11AC016Action.handle(B11AC016Action.java:73)
- at nablarch.sample.ss11AC.B11AC016Action.handle(B11AC016Action.java:1)
- at nablarch.fw.action.BatchAction.handle(BatchAction.java:1)
- # 以降のスタックトレースは省略。
-```
-
-処理対象データ(出力例の「Input Data :」)に下記の実行時情報が出力される。
-
-```bash
-INSERT_REQUEST_ID=RB11AC0140
-INSERT_EXECUTION_ID=EXECUTION_ID_2000000123456789
-UPDATED_USER_ID=batch_user
-```
-
-## プレースホルダのカスタマイズ方法
-
-処理対象データ($data$)はデフォルトでtoStringメソッドにより全てのデータ項目が出力されるため、
-プロジェクトのセキュリティ要件で特定項目をマスクした出力が要求されるケースが考えられる。
-このように、プレースホルダに対する出力処理をカスタマイズしたい場合は、
-フォーマット処理を行うFailureLogFormatterの拡張と各項目の出力内容を提供するLogItemインタフェースの実装を行う。
-
-ここでは、処理対象データ($data$)に対する出力処理のカスタマイズ例を示す。
-
-まず、処理対象データ($data$)に対する出力内容を提供するクラスの実装例を示す。
-今回はフレームワークが提供するDataItemクラスを継承して作成し、
-処理対象データがMap型の場合のみマスク処理を行うように実装している。
-
-処理対象データ($data$)に対する出力内容を提供するクラスの実装例
-
-```java
-// FailureLogFormatterの拡張クラスにインナークラスとして定義している。
-private static final class CustomDataItem extends DataItem {
-
- /** マスク文字 */
- private static final char MASKING_CHAR = '*';
-
- /** マスク対象のパターン */
- private static final Pattern[] MASKING_PATTERNS
- = new Pattern[] { Pattern.compile(".*MOBILE_PHONE_NUMBER.*"),
- Pattern.compile(".*MAIL.*")};
-
- /**
- * マップの値をマスキングするエディタ。
- * フレームワークが提供するMap編集用のユーティリティ。
- */
- private MapValueEditor mapValueEditor = new MaskingMapValueEditor(MASKING_CHAR, MASKING_PATTERNS);
-
- @Override
- @SuppressWarnings("unchecked")
- public String get(FailureLogContext context) {
-
- // FailureLogContextのgetDataメソッドを呼び出し処理対象データを取得する。
- Object data = context.getData();
-
- // Mapでない場合はフレームワークのデフォルト実装を呼び出す。
- if (!(data instanceof Map)) {
- return super.get(context);
- }
-
- // Mapをマスクした文字列を返す。
- Map editedMap = new TreeMap();
- for (Map.Entry