オープンJavaフレームワーク ユーザーズガイド

Size: px
Start display at page:

Download "オープンJavaフレームワーク ユーザーズガイド"

Transcription

1 Interstage Business Application Server V9.2.0 オープン Java フレームワークユーザーズガイド Windows/Solaris/Linux B1X Z0(00) 2009 年 11 月

2 まえがき 本書の目的 本書は Interstage Business Application Server オープン Java フレームワークユーザーズガイド です 本書は Interstage Business Application Server が提供するオープン Java フレームワークについて説明します 本書は 以下の方を対象にしています システム構築担当者 アプリ開発者 運用設計者 前提知識本書を読む場合 以下の知識が必要です 使用するOSに関する基本的な知識 Javaに関する基本的な知識 J2EEに関する基本的な知識 インターネットに関する基本的な知識 リレーショナルデータベースに関する基本的な知識 Interstage Application Serverに関する基本的な知識 Interstage Studioに関する以下の知識 - Webアプリケーション開発 Strutsに関する基本的な知識 Spring Frameworkに関する基本的な知識 ibatisに関する基本的な知識 TERASOLUNAに関する基本的な知識 本書の構成 本書は 以下のように構成されています 第 1 章概要 Interstage Business Application Server が提供するオープン Java フレームワークの概要について説明します 第 2 章 Struts Struts を使用した Web アプリケーションの開発について説明します 第 3 章 Spring Framework Spring Framework を使用した業務アプリケーションの開発について説明します 第 4 章 ibatis ibatis を使用したデータアクセス層のアプリケーションの開発について説明します 第 5 章 TERASOLUNA TERASOLUNA を使用したアプリケーションの開発について説明します 第 6 章オープン Java フレームワークにおけるログ機能の利用オープン Java フレームワークにおけるログ機能の利用について説明します 第 7 章標準ログサーバアプリケーションの開発における操作について説明します 第 8 章バックアップ リストアおよびクラスタバックアップ リストアおよびクラスタの利用について説明します 付録 A TERASOLUNA のサンプルアプリケーション TERASOLUNA アプリケーションのサンプルの作成方法および 動作方法を説明します - i -

3 付録 B 謝辞 免責文 ライセンス文オープン Java フレームワークに関わる謝辞 免責文そしてライセンス文について記載しています 製品名称 本書では 以下の製品名称を略称で表記しています 製品名称 Microsoft(R) Windows(R) 2000 Professional Microsoft(R) Windows(R) 2000 Server Microsoft(R) Windows(R) 2000 Advanced Server Microsoft(R) Windows Server(R) 2003, Standard Edition Microsoft(R) Windows Server(R) 2003 R2, Standard Edition Microsoft(R) Windows Server(R) 2003, Enterprise Edition Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition Microsoft(R) Windows Server(R) 2003, Standard x64 Edition Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition Microsoft(R) Windows Server(R) 2008 Standard Microsoft(R) Windows Server(R) 2008 Standard without Hyper-V Microsoft(R) Windows Server(R) 2008 Enterprise Microsoft(R) Windows Server(R) 2008 Enterprise without Hyper-V Microsoft(R) Windows Server(R) 2008 Datacenter Microsoft(R) Windows Server(R) 2008 Datacenter without Hyper-V Microsoft(R) Windows Server(R) 2008 R2 Foundation Microsoft(R) Windows Server(R) 2008 R2 Standard Microsoft(R) Windows Server(R) 2008 R2 Enterprise Microsoft(R) Windows Server(R) 2008 R2 Datacenter Microsoft(R) Windows Server(R) 2008 R2 for Itanium-Based Systems Microsoft(R) Windows(R) XP Professional x64 Edition Microsoft(R) Windows(R) XP Home Edition Microsoft(R) Windows(R) XP Professional Windows Vista(R) Ultimate Windows Vista(R) Business Windows Vista(R) Home Premium Windows Vista(R) Home Basic Windows Vista(R) Enterprise Windows(R) 7 Ultimate Windows(R) 7 Enterprise Windows(R) 7 Professional および Windows(R) 7 Home Premium Microsoft(R) Windows(R) 2000 Advanced Server Microsoft(R) Windows(R) 2000 Server および Microsoft(R) Windows(R) 2000 Professional Microsoft(R) Windows(R) XP Professional x64 Edition Microsoft(R) Windows(R) XP Professional および Microsoft(R) Windows(R) XP Home Edition Windows Vista(R) Ultimate Windows Vista(R) Business Windows Vista(R) Home Premium Windows Vista(R) Home Basic および Windows Vista(R) Enterprise Microsoft(R) Windows Server(R) 2003, Standard Edition Microsoft(R) Windows Server(R) 2003 R2, Standard Edition Microsoft(R) Windows Server(R) 2003, Enterprise Edition Microsoft(R) Windows 略称 Windows Windows 2000 Windows XP Windows Vista Windows Server 2003またはWindows Server - ii -

4 製品名称 Server(R) 2003 R2, Enterprise Edition Microsoft(R) Windows Server(R) 2003, Standard x64 Edition Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition および Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition Microsoft(R) Windows Server(R) 2008 Standard Microsoft(R) Windows Server(R) 2008 Standard without Hyper-V Microsoft(R) Windows Server(R) 2008 Enterprise Microsoft(R) Windows Server(R) 2008 Enterprise without Hyper-V Microsoft(R) Windows Server(R) 2008 Datacenter Microsoft(R) Windows Server(R) 2008 Datacenter without Hyper-V Microsoft(R) Windows Server(R) 2008 R2 Foundation Microsoft(R) Windows Server(R) 2008 R2 Standard Microsoft(R) Windows Server(R) 2008 R2 Enterprise Microsoft(R) Windows Server(R) 2008 R2 Datacenter および Microsoft(R) Windows Server(R) 2008 R2 for Itanium-Based Systems Windows(R) 7 Ultimate Windows(R) 7 Enterprise Windows(R) 7 Professional および Windows(R) 7 Home Premium Solaris(TM) オペレーティングシステム 略称 Windows Server 2008 または Windows Server Windows 7 Solaris Solaris(TM) 9 オペレーティングシステム Solaris 9 Solaris(TM) 10 オペレーティングシステム Solaris 10 Red Hat Enterprise Linux AS v.4 および Red Hat Enterprise Linux 5 Java 2 SDK, Standard Edition および Java Development Kit Java 2 Runtime Environment, Standard Edition および Java Runtime Environment Oracle Database 10g Standard Edition および Oracle Database 10g Enterprise Edition Oracle Database 11g Standard Edition および Oracle Database 11g Enterprise Edition Symfoware Server Enterprise Edition 9.1/10.0 Linux JDK JRE Oracle または Oracle10g Oracle または Oracle11g Symfoware Server( 注 ) Symfoware Server Enterprise Edition 9.0/9.1/10.0 および Symfoware Server Enterprise Extended Edition 9.0/9.1/10.0 Symfoware Server Enterprise Edition 9.0/9.1/10.0 および Symfoware Server Enterprise Extended Edition 9.0/9.1/10.0 Interstage Studio Enterprise Edition 9.2 Interstage Studio 注 ) Symfoware Server と Interstage Business Application Server に同梱している Symfoware/RDB とを総称する場合 Symfoware と表記します 著作権 Copyright 2009 FUJITSU LIMITED - iii -

5 2009 年 11 月第 2 版 - iv -

6 目次 第 1 章概要 Interstage Business Application Server が提供するオープン Java フレームワーク 動作環境 アプリケーション開発時に必要なソフトウェア アプリケーション実行時に必要なソフトウェア 資源要件 運用モデル 基本的な構成 Spring Framework を利用した Web-AP 分散構成...6 第 2 章 Struts Struts の概要 Struts カスタムタグライブラリ ActionServlet Validator DataSource 国際化対応 一貫したログの出力 Struts の環境作成 IJServer の作成 クラスパスの設定 アプリケーションの配備 Struts アプリケーションの開発 Struts アプリケーションに必要な資材の準備 Model の作成 View の作成 Controller の動作を定義する設定ファイルの作成 配備記述子 (web.xml) の作成 Web アプリケーションの作成 Spring Framework との連携 ibatis との連携 Struts IDE による Struts アプリケーションの作成 基本的な操作 Spring Framework と連携するアプリケーションの作成 Struts の運用 保守 起動 停止 ログ 注意事項 チューニング トラブルシューティング ワークユニット起動時の異常...36 第 3 章 Spring Framework Spring Framework の概要 DI コンテナ トランザクション抽象化レイヤ JDBC 抽象化レイヤ O/R マッピング連携 AOP MVC フレームワーク JTA によるトランザクション制御機能 IJServer 間連携 Symfoware のエラーコードに対応した JDBC サポート機能 一貫したログの出力 Spring Framework の環境作成 v -

7 3.2.1 IJServer の作成 クラスパスの設定 アプリケーションの配備 Spring Framework アプリケーションの開発 AP 層の作成 Web 層の作成 定義ファイルの作成 リモート機能による IJServer 間連携 Symfoware のエラーコードに対応した例外クラス Struts との連携 ibatis との連携 Spring IDE による Spring Framework アプリケーションの作成 基本的な操作 Struts と連携するアプリケーションの作成 Spring Framework の運用 保守 起動 停止 ログ 複数 IJServer による分離型での運用 注意事項 Spring Framework アプリケーションで JTA を利用する場合の注意事項 Spring Framework アプリケーション作成時の注意事項 チューニング トラブルシューティング アプリケーション配備時の異常 ワークユニット起動時の異常 アプリケーション実行時の異常...92 第 4 章 ibatis ibatis の概要 O/R マッピング コネクション管理 トランザクション管理 一貫したログの出力 ibatis の環境作成 データベース接続の設定 IJServer の作成 クラスパスの設定 アプリケーションの配備 ibatis アプリケーションの開発 ibatis の基本設計 ibatis アプリケーションに必要な設定ファイルの作成 ibatis アプリケーションの実行クラスの作成 (Spring Framework と連携しない場合 ) Struts との連携 Spring Framework との連携 ibatis の運用 保守 起動 停止 ログ 注意事項 データベース固有の注意点 チューニング トラブルシューティング アプリケーション実行時の異常 第 5 章 TERASOLUNA TERASOLUNA の概要 提供機能 システムモデル TERASOLUNA の環境作成 vi -

8 5.2.1 IJServer の作成 クラスパスの設定 ワークマネージャの設定 (TERASOLUNA-Batch のみ ) TERASOLUNA フレームワークが出力するログの設定 TERASOLUNA の開発 ブランクプロジェクトのインポート ファイルパスの修正 データベースの設定 TERASOLUNA アプリケーションが出力するログの設定 アプリケーションの開発 ワークマネージャのスレッドプールサイズの調整 (TERASOLUNA-Batch) 配備アプリケーションの変更手順 デバッグ方法 TERASOLUNA の運用 保守 起動 停止 ログ 異常発生時の対処 注意事項 共通の注意事項 TERASOLUNA Batch Framework for Java 使用時の注意事項 チューニング TERASOLUNA Batch Framework for Java のチューニング トラブルシューティング TERASOLUNA Batch Framework for Java のトラブルシューティング 第 6 章オープン Java フレームワークにおけるログ機能の利用 commons-logging API 仕様に準拠したログ機能 commons-logging API 仕様に準拠したログ機能の概要 commons-logging API 仕様に準拠したログ機能の環境作成 アプリケーションログの出力レベルについて ログ機能の利用方法 commons-logging API を用いてログ出力する LogComposer クラスを用いてログを出力する ExtMessageComposer クラスを用いてログを出力する ExtDataComposer クラスを用いてログを出力する ExtTimeComposer クラスを用いてログを出力する ULogComposer クラスを用いてログを出力する 注意事項 トラブルシューティング 第 7 章標準ログ 標準ログの概要 標準ログの定義 標準ログの出力レベル サブシステム名 標準ログの基本フォーマット 標準ログのメッセージ本文 システムログ 性能ログ 注意事項 トラブルシューティング 第 8 章バックアップ リストアおよびクラスタ バックアップ リストア資源の一覧 バックアップの手順 アプリケーションサーバの停止 アプリケーションサーバ環境資源のバックアップ アプリケーションサーバの起動 vii -

9 8.3 リストアの手順 アプリケーションサーバの停止 アプリケーションサーバ環境資源のリストア アプリケーションサーバの起動 クラスタ構成 付録 A TERASOLUNA のサンプルアプリケーション A.1 サンプルの導入方法 A.2 TERASOLUNA Server Framework for Java (Web 版 ) のサンプル A.2.1 サンプルの構成 A.2.2 動作方法 A.3 TERASOLUNA Server Framework for Java (Rich 版 ) のサンプル A.3.1 サンプルの構成 A.3.2 動作方法 A.4 TERASOLUNA Batch Framework for Java のサンプル A.4.1 サンプルの作成方法 A.4.2 サンプルの動作方法 付録 B 謝辞 免責文 ライセンス文 B.1 Apache License のライセンス文 B.2 AspectJ のライセンス文 B.3 Spring IDE のライセンス文 B.4 ASM のライセンス文 viii -

10 第 1 章概要 1.1 Interstage Business Application Server が提供するオープン Java フレームワーク Interstage Business Application Server は オープンソースのフレームワークとして人気のある Struts Spring Framework ibatis そしてそれらを統合した汎用フレームワークである TERASOLUNA を提供します 各フレームワークについて以下に説明します Struts Web アプリケーションに Model View Controller の MVC 構造を適用して Web アプリケーションの開発を容易にするフレームワークです Spring Framework DI(Dependency Injection) 機能や AOP(Aspect Oriented Programming) により POJO(Plain Old Java Object) クラスを組み合わせてアプリケーションを作成することを可能にして 業務アプリケーションの開発を容易にするフレームワークです ibatis Java オブジェクトと RDB のデータ構造の違いを吸収してマッピング (O/R マッピング ) することにより データアクセス層のアプリケーションの開発を容易にするフレームワークです TERASOLUNA Struts Spring Framework ibatis を統合した汎用フレームワークです Web アプリケーション向け リッチクライアント向け バッチアプリケーション向けのフレームワークがあります Struts Spring Framework ibatis のオリジナルのマニュアルおよび javadoc は Interstage Business Application Server のマニュアル CD-ROM 内に格納されています TERASOLUNA のマニュアルについては 下記のサイトを参照してください ( ) 一貫したログの出力 Interstage Business Application Server では 上記のフレームワークを組み合わせた際に 1 つのリクエストに対して 1 つの コンテキスト ID を紐付けてログを出力することができます 各フレームワークが出力するログに一貫して同じ ID がついているため どのリクエストの処理がどのような処理ルートを実行したかをログから判別することができます 詳細は 第 7 章標準ログ を参照してください 1.2 動作環境 アプリケーション開発時に必要なソフトウェア アプリケーション開発時に必要なソフトウェアについて説明します アプリケーション開発環境項番機能名製品名バージョン レベル 1 オープン Java フレームワークを利用したアプリケーションの開発 ( 注 1) Interstage Studio Enterprise Edition ( 注 2) 注 1) 注 2) Spring Framework の IJServer 連携機能を使用する場合は CORBA サービスクライアントおよび CORBA サービスディベロップメントツールをインストールする必要があります また JNDI を使用するアプリケーションを作成する場合は CORBA サービスまたは CORBA サービスクライアントをインストールする必要があります Java EE ワークベンチは使用できません - 1 -

11 データベース関連 アプリケーション開発に必要なデータベース関連のソフトウェアついては アプリケーション実行時に必要なソフトウェア の データベース関連 を参照してください アプリケーション実行時に必要なソフトウェア アプリケーション実行時に必要なソフトウェアについて説明します Java 実行環境 項番機能名製品名バージョン レベル 1 オープン Java フレームワークを利用したアプリケーション 注 1) 本製品が提供するアプリケーションサーバの IJServer (J2EE) ( 注 1) - 対応する JDK のバージョンは 5.0 です V8 互換モードの IJServer は使用できません データベース関連 サポート対象のデータベースは各 JDBC ドライバのマニュアルを参照してください Symfoware を使用したアプリケーションを運用する場合 項番プラットフォームサポートする JDBC ドライババージョン レベル 1 Windows(R) Symfoware Server クライアント機能 以降 2 Solaris Symfoware Server クライアント機能 以降 3 RHEL-AS4(x86)/AS4(EM64T) Symfoware Server クライアント機能 以降 4 RHEL5(x86)/(Intel64) Symfoware Server クライアント機能 以降 5 RHEL-AS4(IPF) Symfoware Server クライアント機能 以降 6 RHEL5(IPF) Symfoware Server クライアント機能 以降 注 ) ibatis の一部の機能において Symfoware Server のバージョン レベル 以上で提供される JDBC ドライバの機能が必要です 詳細は 第 4 章 ibatis の データベース固有の注意点 を参照してください Oracle を使用したアプリケーションを運用する場合 項番プラットフォームサポートする JDBC ドライババージョン レベル 1 Windows(R) Oracle JDBC Driver または Solaris Oracle JDBC Driver または RHEL-AS4(x86)/AS4(EM64T) Oracle JDBC Driver または RHEL5(x86)/(Intel64) Oracle JDBC Driver または RHEL-AS4(IPF) Oracle JDBC Driver RHEL5(IPF) Oracle JDBC Driver 注 ) Oracle JDBC Driver のバージョンが 以前の場合 ConnectionEventListener が未実装です このため 以下の機能を使用すると誤動作する場合があります 以下の機能を使用する場合には の Oracle JDBC Driver を使用するか ConnectionEventListener が実装されている修正パッチを Oracle 製品の SupportDesk 契約に基づいて SupportDesk から入手して適用してください - 2 -

12 -Interstage がコネクションをプールする (oracle.jdbc.pool.oracleconnectionpooldatasource) - 分散トランザクションを使用する (oracle.jdbc.xa.oraclexadatasource) SQL Serverを使用したアプリケーションを運用する場合 項番 プラットフォーム サポートするJDBCドライバ バージョン レベル 1 Windows(R) Microsoft(R) SQL Server(TM) 2005 JDBC Driver 1.2 以降 2 Solaris Microsoft(R) SQL Server(TM) 2005 JDBC Driver 1.2 以降 3 RHEL-AS4(x86)/AS4(EM64T) Microsoft(R) SQL Server(TM) 2005 JDBC Driver 1.2 以降 4 RHEL5(x86)/(Intel64) Microsoft(R) SQL Server(TM) 2005 JDBC Driver 1.2 以降 5 RHEL-AS4(IPF) Microsoft(R) SQL Server(TM) 2005 JDBC Driver 1.2 以降 6 RHEL5(IPF) Microsoft(R) SQL Server(TM) 2005 JDBC Driver 1.2 以降 注 ) 分散トランザクション機能を使用する場合は 使用できません PowerGres Plusを使用したアプリケーションを運用する場合 項番 プラットフォーム サポートするJDBCドライバ バージョン レベル 1 Windows(R) PowerGres Plusクライアント V5.0 2 RHEL-AS4(x86)/AS4(EM64T) PowerGres Plusクライアント V5.0 3 RHEL5(Intel64) PowerGres Plusクライアント V5.0 注 ) 分散トランザクション機能を使用する場合は 使用できません 資源要件 IPC 資源オープンJavaフレームワークでは IPC 資源を使用していないため IPC 資源のチューニングの考慮の必要はありません 1.3 運用モデル 基本的な構成 オープンJavaフレームワークを使用する場合の基本的な構成について説明します 基本的な構成は 以下の8パターンがあります 項番パターン説明選択のポイント 1 Struts だけを使用する構成 2 Spring Framework だけを使用する構成 Struts を使用した Web アプリケーションの構成です Web コンテナまたは Web+EJB コンテナ上で動作します プレゼンテーション層に Spring-MVC 機能を使用して ビジネスロジック層で Spring Framework の DI 機能や AOP 機能を利用する構成です Web コンテナまたは Web+EJB コンテナ上で動作します ビジネスロジックの規模が小さい場合に選択します Interstage Business Application Server における機能拡張である一貫したログを使用することができます データベースのテーブル構造が単純で ibatis の O/R マッピング機能が必要ない場合に選択します Interstage Business Application Server における機能拡張である一貫したログを使用することができます - 3 -

13 項番パターン説明選択のポイント 3 ibatis だけを使用する構成 4 Struts と Spring Framework を使用する構成 5 Struts と ibatis を使用する構成 6 Struts Spring Framework および ibatis を使用する構成 7 Spring Framework と ibatis を使用する構成 8 TERASOLUNA を使用する構成 注 1) ibatis の O/R マッピング機能だけを使用する構成です Web コンテナ Web+EJB コンテナ および EJB コンテナ上で動作します プレゼンテーション層に Struts を使用して ビジネスロジック層で Spring Framework の DI 機能や AOP 機能を利用する構成です Web コンテナまたは Web+EJB コンテナ上で動作します プレゼンテーション層で Struts を使用し データベースのアクセスに ibatis の機能を使用する構成です 図 1.1 Struts と ibatis を使用する構成 Web コンテナまたは Web+EJB コンテナ上で動作します プレゼンテーション層で Struts ビジネスロジック層で Spring Framework と ibatis の機能を使用する構成です 図 1.2 Struts Spring Framework および ibatis を使用する構成 Web コンテナまたは Web+EJB コンテナ上で動作します 上記 6 の構成において Struts の代わりに Spring-MVC 機能を使用する構成です 図 1.3 Spring Framework と ibatis を使用する構成 Web コンテナまたは Web+EJB コンテナ上で動作します 上記 5 の構成を TERASOLUNA フレームワークを介して使用する構成です 図 1.4 TERASOLUNA を使用する構成 Web コンテナまたは Web+EJB コンテナ上で動作します プレゼンテーション層を Struts や Spring Framework を使用せずにユーザ独自で作成した場合や EJB の SessionBean から ibatis の O/R マッピング機能を使用する場合などに選択します データベースコネクションは JNDI で取得し アプリケーションサーバが管理する形態を推奨します 一貫したログは使用できません 上記 1 の構成で作成したアプリケーションから ビジネスロジックに拡張性をもたせるようにしたい場合に選択します Interstage Business Application Server における機能拡張である一貫したログを使用することができます 純粋なビジネスロジックが少なく 画面表示とデータベースアクセスが大半を占めるようなアプリケーションの場合に選択します データベースコネクションは JNDI で取得し アプリケーションサーバが管理する形態を推奨します Interstage Business Application Server における機能拡張である一貫したログを使用することができます 拡張性を考慮して ビジネスロジックと画面表示 およびデータベースアクセスを分離する場合に選択します Spring Framework でデータベースコネクション管理 トランザクション管理を一括で管理することができます Interstage Business Application Server における機能拡張である一貫したログを使用することができます 拡張性を考慮して ビジネスロジックと画面表示 およびデータベースアクセスを分離する場合に選択します 上記 6 の構成とは同等の機能のため 開発者のスキルセットによって選択してください Spring Framework でデータベースコネクション管理 トランザクション管理を一括で管理することができます Interstage Business Application Server における機能拡張である一貫したログを使用することができます 拡張性を考慮して ビジネスロジックと画面表示 およびデータベースアクセスを分離する場合 また バッチアプリケーションの開発を行う場合に選択します Struts Spring Framework ibatis に加え TERASOLUNA が提供する Web アプリケーション リッチクライアントアプリケーションおよびバッチアプリケーションのための部品を利用することができます Interstage Business Application Server における機能拡張である一貫したログを使用することができます ( 注 1) TERASOKUNA フレームワーク層では一貫したログの出力は行いません TERASOLUNA から呼び出される Struts Spring Framework および ibatis の層で出力されます - 4 -

14 図 1.1 Struts と ibatis を使用する構成 図 1.2 Struts Spring Framework および ibatis を使用する構成 図 1.3 Spring Framework と ibatis を使用する構成 - 5 -

15 図 1.4 TERASOLUNA を使用する構成 Struts と ibatis を連携させる方法については 第 4 章 ibatis の Struts との連携 を参照してください Struts と Spring Framework を連携させる方法については 第 3 章 Spring Framework の Struts との連携 を参照してください Spring Framework と ibatis を連携させる方法については 第 3 章 Spring Framework の ibatis との連携 および 第 4 章 ibatis の Spring Framework との連携 を参照してください Spring Framework を利用した Web-AP 分散構成 Spring Framework を使用する場合は プレゼンテーション層 (Web 層 ) とビジネスロジック層 (AP 層 ) を分離した Web-AP 分散構成をとることができます 図 1.5 Struts Spring Framework および ibatis を使用した Web-AP 分散構成 Web-AP 分散構成により 大規模システムにおいて Web 層と AP 層の負荷を考慮した柔軟なサーバ構成を実現することができます TERASOLUNA を使用する構成でも 同様に Web-AP 分散構成をとることができます - 6 -

16 第 2 章 Struts 2.1 Struts の概要 Struts とは Web アプリケーションのオープンソースフレームワークです Struts を利用することにより Web アプリケーションの開発効率を高める事が期待できます 主な機能は以下の通りです Struts カスタムタグライブラリ ActionServlet Validator DataSource 国際化対応 本製品で提供する Struts は 以下の機能を追加提供します 一貫したログの出力 Struts が提供する機能と 本製品に含まれる Struts が提供する機能を記載します 機能名 Struts 本製品で提供する Struts Struts カスタムタグライブラリ ActionServlet Validator DataSource ( 注 ) ( 注 ) 国際化対応 一貫したログの出力 注 )Struts では非推奨です Struts カスタムタグライブラリ 処理の分岐や繰り返し エラー処理など JSP でよく利用される機能をカスタムタグとして提供しています カスタムタグを利用する事により JSP 内に存在していた Java コードを HTML と同様のタグに置き換える事ができるため JSP の可読性が向上します Struts では以下のカスタムタグを提供しています html フォームなどの各 HTML タグを代替し Struts と連動した処理を提供します logic 条件分岐や繰り返し 値の比較などの制御ロジックをタグ化します bean リクエストデータや業務オブジェクトの他に HTTP ヘッダやクッキーのような不可視のリクエストデータへのアクセス手段も提供します nested 上記 3 タグの記述を簡略化する機能を提供します 同一オブジェクトにアクセスする際の冗長な記述を改善する事ができます tiles 画面をヘッダ メニュー コンテンツなどの部分に分割し これらを組み合わせる事によって画面を構成する機能 各部分の再利用性を高める事ができます - 7 -

17 2.1.2 ActionServlet Struts 唯一のサーブレットで Struts ランタイムの動作を指定する設定ファイルの内容に従い 入出力データの振り分けや画面遷移の制御を引き受けます Struts アプリケーションにおいては この ActionServlet のおかげで MVC のうち Controller の記述を限りなく省力化する事が可能になり Model と View のアプリケーション固有の機能開発に専念する事が可能になります Validator クライアントからの入力データを検証設定ファイルに定義した検証対象 検証内容 エラーメッセージなどの条件に従って検証処理を行います Validator では 予め必須チェック 文字列長チェック 正規表現チェック データ型チェック 数値範囲チェックなどが提供されており 検証設定ファイルを用意するだけで これらの機能を利用することができます また 開発者が適宜必要に応じて拡張できる柔軟性も持ち合わせています DataSource Struts ランタイムの動作を指定する設定ファイルへアプリケーションが利用する個々のデータソースの情報を定義する事によって java.sql.datasource オブジェクトとして利用する事が可能になります 初期の Struts では標準的な DB 接続方法でしたが 現在ではデータベース処理とビジネスロジックを分離する目的のため Struts が管理する DataSource ではなく アプリケーションサーバが管理する DataSource を利用する事が推奨されています 国際化対応 Struts では国や言語に合わせた資材を用意する事で クライアントのロケール情報を解析し 適切な資材を自動的に選択する機能を提供します 共通で利用できる部分と言語固有の部分を分けて開発できるため アプリケーションの再利用性を高める事ができます 一貫したログの出力 本製品で提供する Struts では 一連のアプリケーションはコンテキスト ID と呼ばれる識別情報に関連付けられます ログファイルにコンテキスト ID を付加してログメッセージを出力する事によって 一連のアプリケーションが出力したログを選定する事ができます 本機能の詳細については 第 7 章標準ログ を参照してください 2.2 Struts の環境作成 Strutsを利用するためには 以下の手順で環境を作成します IJServerの作成 クラスパスの設定 Strutsアプリケーションの配備 IJServer の作成 Strutsアプリケーションを動作させるために必要なIJServerを作成します IJServerの作成 Interstage 管理コンソールを使用して IJServerワークユニットを作成します [ システム ] > [ ワークユニット ] > [ 新規作成 ] タブ - 8 -

18 Struts アプリケーションでは IJServer のタイプ EJB アプリケーションのみ運用 は利用できません クラスパスの設定 IJServer のクラスパスへログ機能が動作するために必要な jar ファイルを設定します クラスパスの設定 Interstage 管理コンソールを使用して IJServer ワークユニットでログ機能が動作するために必要な jar ファイルをクラスパスへ設定します [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 環境設定 ] タブ 以下の jar ファイルを設定します [Interstageのインストールディレクトリ]\BAS\struts12\lib\struts12.jar [Interstageのインストールディレクトリ]\BAS\lib\commons-beanutils jar [Interstageのインストールディレクトリ]\BAS\lib\commons-digester jar [Interstageのインストールディレクトリ]\BAS\lib\commons-logging jar [Interstageのインストールディレクトリ]\BAS\lib\apfwlogging.jar [Interstageのインストールディレクトリ]\APC\lib\uji.jar [Interstageのインストールディレクトリ]\APC\lib\ujief.jar [Interstageのインストールディレクトリ]\APC\lib\ujilog.jar [Interstageのインストールディレクトリ]\BAS\lib\apfwutils50.jar /opt/fjsvibs/struts12/lib/struts12.jar /opt/fjsvibs/lib/commons-beanutils jar /opt/fjsvibs/lib/commons-digester jar /opt/fjsvibs/lib/commons-logging jar /opt/fjsvibs/lib/apfwlogging.jar /opt/fjsvwebc/lib/uji.jar /opt/fjsvapcef/lib/ujief.jar /opt/fjsvapclg/lib/ujilog.jar /opt/fjsvibs/lib/apfwutils50.jar アプリケーションの配備 作成したIJServerへ Strutsアプリケーションを配備します アプリケーションの配備操作 Interstage 管理コンソールを使用して IJServerワークユニットへStrutsアプリケーションファイルを配備します [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 配備 ] タブ - 9 -

19 2.3 Struts アプリケーションの開発 本項では Strutsアプリケーションの開発の手順を説明します Strutsアプリケーションに必要な資材の準備 Modelの作成 Viewの作成 Controllerの動作を定義する設定ファイルの作成 配備記述子 (web.xml) の作成 Webアプリケーションの作成 Spring Frameworkとの連携 ibatisとの連携 Interstage Studio 上における Struts アプリケーション開発用プロジェクトの作成方法については 2.4 Struts IDE による Struts アプリケーションの作成 を参照してください Struts アプリケーションに必要な資材の準備 必要な jar ファイル一覧 Struts アプリケーションで必要となる jar ファイルは以下の通りです jarファイル名 struts12.jar apfwlogging.jar uji.jar ujief.jar ujilog.jar apfwutils50.jar commons-beanutils jar commons-digester jar commons-logging jar commons-fileupload jar commons-validator jar antlr jar jakarta-oro jar 機能概要 strutsランタイム一式標準ログの出力で使用ログ機能の既定機能を利用するために使用シスログ またはイベントログを利用するために使用ログ機能の拡張機能を利用するために使用共通ユーティリティの機能を利用するために使用 Formへの入力値をJavaBeanに格納する機能で使用 struts 設定ファイルの解析で使用 commons-digesterが使用ファイルアップロード機能を使用する場合に必要プラグイン検証機能を使用する場合に必要プラグイン検証機能を使用する場合に必要プラグイン検証機能を使用する場合に必要 jar ファイルの格納先 本製品が提供する Struts の jar ファイルは以下に格納されています [Interstage のインストールディレクトリ ]\BAS\struts12\lib\

20 /opt/fjsvibs/struts12/lib/ Model の作成 Modelは ユーザアプリケーションのビジネスロジックを実装します Strutsの作法では ビジネスロジックを実装するActionクラス リクエストデータを格納するActionFormクラスの2つから構成されます なお 各 APIの詳細については StrutsのJavadocを参照してください ActionForm クラスの作成 JSP の入力フォームに入力された情報を格納するクラスです org.apache.struts.action.actionform クラスを継承する以外は JavaBeans と同様に開発を行います (ExtActionForm.java) package sample; import org.apache.struts.action.actionform; import org.apache.struts.action.actionerrors; import org.apache.struts.action.actionmapping; import org.apache.struts.action.actionmessage; import javax.servlet.http.httpservletrequest; public class ExtActionForm extends ActionForm { // プロパティ private String name = null; // アクセサ public void setname( String prm ) { name = prm; } public String getname( ) { return name; } // (1) public ActionErrors validate( ActionMapping mapping, HttpServletRequest request ) {

21 ActionErrors ret = new ActionErrors(); if( (null == name) (name.equals("")) ) { ret.add( "name", new ActionMessage("err.input", false) ); } return ret; } } (1) 検証機能 このメソッドは Action クラスが実行される前に Struts ランタイムから呼び出されます Action クラスの作成 ユーザのビジネスロジックを実装するクラスです org.apache.struts.action.action クラスを継承させる必要があります (ExtAction.java) package sample; import org.apache.struts.action.action; import org.apache.struts.action.actionform; import org.apache.struts.action.actionforward; import org.apache.struts.action.actionmapping; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class ExtAction extends Action { // (1) public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res ) throws java.lang.exception { ExtActionForm eaf = (ExtActionForm)form; String name = eaf.getname( );

22 eaf.setname( name + ", hello." ); // (2) return (mapping.findforward( "result" )); } } (1) 業務ロジックの実装 execute メソッドをオーバライドして ユーザの業務ロジックを実装します (2) 処理結果の遷移先を返却 処理結果として出力する遷移先 (Struts 設定ファイルで定義した forward タグ ) を指定します View の作成 Struts アプリケーションでは View として主に JSP が使用されます そのため Struts では JSP の開発をサポートするカスタムタグライブラリを提供しています カスタムタグライブラリを使用する事により HTML タグとコードの混在が軽減され 可読性およびメンテナンス性の向上が期待できます なお Struts カスタムタグライブラリの詳細については Struts のマニュアルを参照してください カスタムタグライブラリの使用方法 JSP でカスタムタグを利用するには Java の import 文のようにカスタムタグの利用宣言を行う必要があります その際 taglib タグを使用してカスタムタグの構文を定義した tld ファイルを指定します この指定にはいくつかの方法があります JSP ファイルからの相対パスで指定する Web モジュールからの絶対パスで指定する 配備記述子で定義した tld ファイルのパスに対応するキーを指定する コンテナがマッピングしている tld ファイルのパスに対応するキーを指定する JSP の詳細については Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください 入力画面の作成 ユーザの入力を受け付ける JSP を作成します (input.jsp) <%@ page contenttype="text/html; charset=utf-8" %> <!-- (1) --> <%@ taglib uri=" prefix="html" %> <html> <body>

23 <!-- (2) --> <html:form action="/sample.do" > Please input your name.<br> <!-- (3) --> <html:text property="name" /> <html:submit value="submit" /><br> </html:form> </body> </html> (1) strutsカスタムタグライブラリの宣言 Strutsカスタムタグライブラリを使用する場合に記述します (2) 入力フォーム入力フォームを表します action 属性でリクエスト送信先を指定します (3) テキストフィールドテキストフィールドです property 属性でActionFormのプロパティと紐付けを行います 出力画面の作成業務ロジックでの処理結果を出力するJSPを作成します (result.jsp) page contenttype="text/html; charset=utf-8" %> <!-- (1) --> taglib uri=" prefix="bean" %> <html> <body> <!-- (2) --> <bean:write name="formbean" property="name" /><br> <br> <a href="./input.jsp">return</a><br> </body> </html> (1) struts カスタムタグライブラリの宣言 Struts カスタムタグライブラリを使用する場合に記述します

24 (2) ActionForm にアクセス カスタムタグを介して ActionForm に格納されている値を出力します Controller の動作を定義する設定ファイルの作成 ユーザは定義ファイル (Struts 設定ファイル ) で動作内容の指示を行います この Struts 設定ファイルの定義内容に従い Controller はリクエスト URL ごとに処理の振り分け Action クラスの処理結果に応じた遷移先の呼び出し 例外発生時の対応などを行います (struts-config.xml) <!-- (1) --> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" " <struts-config> <form-beans> <!-- (2) --> <form-bean name="formbean" type="sample.extactionform" /> </form-beans> <action-mappings> <!-- (3) --> <action path="/sample" type="sample.extaction" name="formbean" input="/input.jsp" > <!-- (4) --> <forward name="result" path="/result.jsp" /> </action> </action-mappings> </struts-config> (1) DOCTYPE 指定 Struts 設定ファイルの構文を定めたdtdファイルを指定します (2) form-beans リクエストパラメータなどを格納するJavaBeanクラスを定義します (3) action-mapping リクエストパスごとに呼び出されるActionクラスを定義します (4) forward

25 処理結果を表示するページのパスを定義します 配備記述子 (web.xml) の作成 Webアプリケーションの配備記述子に Strutsアプリケーションに必要な定義を記述します web.xmlの詳細については Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください (web.xml) <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app> <!-- (1) --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.actionservlet</servlet-class> <!-- (2) --> <load-on-startup>2</load-on-startup> </servlet> <!-- (3) --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> (1) servlet Strutsアプリケーションの起点となるサーブレット名 および サーブレットクラスを指定します (2) load-on-startup この指定を行う事で IJServer 起動時にStrutsランタイムの活性化が行われるようになります

26 本要素を省略した場合 アプリケーションが正常に動作しない場合があるため 必ず指定してください (3) servlet-mapping Struts アプリケーションが呼び出される URL パターンを指定します URL パターンは任意の値が使用できます Web アプリケーションの作成 以上までの手順で Struts アプリケーションに必要な資材の作成が完了しましたので Web アプリケーションとして配備するために WAR ファイルを作成します WAR ファイルの作成方法 IJServer への配備方法などについては Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください Struts アプリケーションの資材配置 Web アプリケーションと同様のディレクトリ構成に Struts アプリケーションに必要な資材を配置します WARファイルにまとめる上記の通りに資材を配置し終わったら Webアプリケーションとして配備するためにWARとして固めます 以上が Strutsアプリケーションの開発工程となります Spring Framework との連携 Spring Framework と連携する際は 第 3 章 Spring Framework の Struts との連携 を参照してください ibatis との連携 ibatis と連携する際は 第 4 章 ibatis の Struts との連携 を参照してください 2.4 Struts IDE による Struts アプリケーションの作成 基本的な操作 本章では Struts IDE の基本的な操作について説明します Strutsサポートの追加 Struts IDEを使用して WebアプリケーションプロジェクトにStrutsサポートを追加する手順を以下に示します 1. Interstage Studio V9.2でWebアプリケーションプロジェクトを作成します 2. Struts IDEの [Strutsサポート] ウィザードを使用して 作成されたWebアプリケーションプロジェクトにStrutsサポートを追加します Web アプリケーションプロジェクトの作成 Web プロジェクトの作成手順の詳細については Interstage Studio ユーザーズガイド を参照してください

27 [Struts サポート ] ウィザードの操作手順 1. 作成された Web アプリケーションプロジェクトを選択して [ ファイル ] > [ 新規 ] > [ その他 ] から [Struts IDE] > [Struts] > [Struts サポートの追加 ] を選択すると [ ウィザードを選択 ] 画面に移行します

28 2. [ 次へ (N)>] をクリックすると [Struts サポートの追加 ] 画面に移行します - Web アプリケーションのルート右側の [ 参照 ] ボタンをクリックして カレントの Web アプリケーションのコンテキストルートを設定することができます 生成された Struts に関連する構成ファイルが当該コンテキストルートに保存されます Interstage Studio を使用して作成された Web アプリケーションプロジェクトのデフォルトコンテキストルートが [ContextRoot] です - servlet-mapping [servlet-mapping] 入力ボックスに URL のマッピングモード ( 例 *.do) を入力して servlet-mapping を設定します - Struts のライブラリを追加する [Struts のライブラリを追加する ] チェックボックスにチェックを入れると Struts IDE は Struts アプリケーションの必要なライブラリを自動で追加します 追加される Struts ライブラリを以下に示します - commons-beanutils jar - commons-collections jar - commons-digester jar - commons-fileupload jar - commons-logging jar - commons-validator jar

29 - jakarta-oro jar - struts12.jar - apfwlogging.jar - カスタムタグの TLD ファイルを追加する [ カスタムタグの TLD ファイルを追加する ] チェックボックスにチェックを入れると Struts IDE は WEB-INF ディレクトリ配下に TLD ファイルを自動で追加します 追加される 5 つの TLD ファイルを以下に示します - struts-bean.tld - struts-html.tld - struts-logic.tld - struts-nested.tld - struts-tiles.tld - struts-config.xml を生成する [struts-config.xml を生成する ] チェックボックスにチェックを入れると Struts IDE は struts-config.xml ファイルを自動で生成します 同ファイルは Struts アプリケーションの中核となる構成ファイルであり 生成後に Web アプリケーションのルート /WEB-INF ディレクトリの配下に保存されます Struts IDE が自動で生成する struts-config.xml ファイルの内容を以下に示します <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" " struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <data-sources> </data-sources> <form-beans> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> </global-forwards> <action-mappings> </action-mappings> <controller processorclass="org.apache.struts.tiles.tilesrequestprocessor"/> <message-resources parameter="messageresources"/> <plug-in classname="org.apache.struts.tiles.tilesplugin"> <set-property property="definitions-config" value="/web-inf/tiles-defs.xml"/> <set-property property="moduleaware" value="true"/> </plug-in> <plug-in classname="org.apache.struts.validator.validatorplugin">

30 <set-property property="pathnames" value="/web-inf/validator-rules.xml,/web-inf/validation.xml"/> </plug-in> </struts-config> - MessageResources.propertites を生成する [MessageResources.propertites を生成する ] チェックボックスにチェックを入れると Struts IDE はアプリケーションのリソースファイルとしての MessageResources.propertites ファイルを自動で生成します MessageResources.propertites ファイルは Web アプリケーションプロジェクトの src ディレクトリ配下に保存されます - web.xml を生成する [web.xml を生成する ] チェックボックスにチェックを入れると Struts IDE は web.xml ファイルを生成します 生成されたファイルは Web アプリケーションのルート /WEB-INF ディレクトリ配下の既存 web.xml ファイルを上書きします 生成された web.xml ファイルには Struts Servlet のコンフィグ Servlet マッピングエレメントおよびアプリケーションに必要なタグライブラリの定義が追加されます Struts IDE が生成する web.xml ファイルの内容を以下に示します <?xml version="1.0" encoding="shift_jis"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.actionservlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/web-inf/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping>

31 <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <taglib> <taglib-uri>/tags/struts-bean</taglib-uri> <taglib-location>/web-inf/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/web-inf/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-logic</taglib-uri> <taglib-location>/web-inf/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-nested</taglib-uri> <taglib-location>/web-inf/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-tiles</taglib-uri> <taglib-location>/web-inf/struts-tiles.tld</taglib-location> </taglib> <!-- <taglib> <taglib-uri> <taglib-location>/web-inf/c.tld</taglib-location> </taglib> <taglib>

32 <taglib-uri> <taglib-location>/web-inf/fmt.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/web-inf/sql.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/web-inf/x.tld</taglib-location> </taglib> --> </web-app>

33 3. [ 次へ (N)>] をクリックすると [ プラグインの設定 ] 画面に移行します - Validator プラグインを使用する [Validator プラグインを使用する ] チェックボックスにチェックを入れると 以下のファイルを自動で追加します - validation.xml - validator-rules.xml - Tiles プラグインを使用する [Tiles プラグインを使用する ] チェックボックスにチェックを入れると 以下のファイルを自動で追加します - tiles-defs.xml

34 4. [ 終了 (F)] をクリックすると カレントの Web アプリケーションプロジェクト配下には Struts エレメント付きのファイルが生成されます Struts サポートを追加した後のプロジェクトディレクトリ構成を以下に示します Struts Action ファイルの作成 Struts IDE を使用して Action クラスを自動生成する手順を以下に示します

35 1. 作成された Web アプリケーションプロジェクトを選択して [ ファイル ] > [ 新規 ] > [ その他 ] から [Struts IDE] > [Struts] > [Struts Action] を選択すると [ ウィザードを選択 ] 画面に移行します

36 2. [ 次へ (N)>] をクリックすると Action クラスの作成画面に移行します Action クラスが所属するパッケージを選択して [ 名前 (M)] に Action クラスの名前を入力します 3. [ 終了 (F)] をクリックすると Struts Action クラスが生成されます 作成された Action クラスは org.apache.struts.action.action を継承します Struts ActionForm ファイルの作成 Struts IDE を使用して ActionForm クラスを自動生成する手順を以下に示します

37 1. 作成された Web アプリケーションプロジェクトを選択して [ ファイル ] > [ 新規 ] > [ その他 ] から [Struts IDE] > [Struts] > [Struts ActionForm] を選択すると [ ウィザードを選択 ] 画面に移行します

38 2. [ 次へ (N)>] をクリックすると ActionForm クラスの作成画面に移行します ActionForm クラスの作成画面において ActionForm クラスが所属するパッケージを選択して [ 名前 (M)] に ActionForm クラスの名前を入力します 3. [ 終了 (F)] をクリックすると ActionForm クラスが生成されます 作成された ActionForm クラスは org.apache.struts.action.actionform を継承します Struts JSP ファイルの作成 Struts IDE は Struts JSP ファイルを生成する機能を提供します 手順を以下に示します

39 1. 作成された Web アプリケーションプロジェクトを選択して [ ファイル ] > [ 新規 ] > [ その他 ] から [Struts IDE] > [Struts] > [Struts JSP ファイル ] を選択すると [ ウィザードを選択 ] 画面に移行します

40 2. [ 次へ (N)>] をクリックすると Struts JSP ファイルの作成画面に移行します Struts JSP ファイルの作成画面について 以下に説明します - コンテナ右側の [ 参照 ] ボタンをクリックして Struts JSP ファイルの保存先を選択します ( 例えば Web アプリケーションのルート配下に Struts JSP ファイルの保存先としての JSP ディレクトリを新規作成します ) を選択します カレント Web アプリケーションプロジェクトにおける既存のディレクトリのみ選択できます - ファイル名 Struts JSP ファイルの名前を入力します 入力する JSP ファイル名の拡張子は必ず.jsp とします - テンプレート [default] が選択できます 3. [ 終了 (F)] をクリックすると JSP ファイルが生成されます 生成された JSP ソースには Struts に関するタグライブラリがインポートされます - struts-bean - struts-logic - struts-html

41 - struts-nested struts-config の編集 Struts IDE は struts-config.xml ファイルにグラフィカルな編集の機能を提供します この機能により Web フローの設計を容易に行うことができます struts-config.xml グラフィカルエディタの操作手順を以下に示します 1. カレントの Web アプリケーションプロジェクトの WEB-INF ディレクトリ配下の struts-config.xml をダブルクリックすると struts-config.xml グラフィカルエディタが起動されます 2. [ フロー ] タブにおいて アクションや JSP 画面 フォワードなどの Struts エレメントを選択してからドラッグして Struts アプリケーションの Web フローをグラフィカルに設計します struts-config.xml グラフィカルエディタについて 以下に説明します [ フロー ] タブ - [ フロー ] タブにおけるドラッグ可能なコントロールは Action Page Forward Exception Input Direct Forward および Include があります - [ フロー ] タブで配置したアクションや JSP を右クリックして [ 開く ] を選択すると JSP やアクションクラスをエディタで開くことができます 対象のファイルが存在しない場合は新規作成ウィザードが起動し アクションや JSP ファイルを生成することができます - [ フロー ] タブで右ボタンをクリックすると [ 画像として保存 ] を選択して 現在の設計フロー画面を保存することができます - [ フロー ] タブで右ボタンをクリックすると [ 印刷 (P)] を選択して 現在の設計フローを印刷することができます [ プロパティ ] ビューグラフィカルエディタで設計された Struts エレメントは [ プロパティ ] ビューにて変更できます

42 [ アウトライン ] ビュー - グラフィカルエディタで設計された Struts エレメントの情報および各エレメント間の関係は [ アウトライン ] ビューにて階層的に表示できます - [ アウトライン ] ビューにおいては Struts エレメントが追加 削除できます [ アウトライン ] ビューにおける操作結果は [ フロー ] タブと [ ソース ] タブにおいても同時に反映できます [ ソース ] タブ - [ ソース ] タブにおいては struts-config.xml ファイルの XML ソースが直接に編集できます 編集結果は [ フロー ] タブと [ アウトライン ] ビューにおいても同時に反映できます - struts-config.xml の内容にエラーがある場合 [ 問題 ] ビューにエラーの位置と内容が表示されます また [ ソース ] タブの該当行にもマーカが表示されます [ 問題 ] ビューでエラー内容をクリックすると [ ソース ] タブの該当行にジャンプすることができます Spring Framework と連携するアプリケーションの作成 Struts と連携するアプリケーションの作成 を参照してください 2.5 Struts の運用 保守 起動 停止 Struts は IJServer ワークユニット上で動作します IJServer ワークユニットの起動 停止は Interstage 管理コンソール上で行います IJServer ワークユニットの起動 停止方法については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください Struts の環境設定については 2.2 Struts の環境作成 を参照してください ログ 本製品の Struts で提供するログ機能に標準ログがあります 標準ログは以下の 2 つから構成されます システムログ Struts ランタイムの稼働状態や エラー情報を表すログ 性能ログ Struts ランタイムが処理に要した時間を表すログ 標準ログは Struts ランタイムの処理において 特定の処理の開始または 終了を契機に出力されます 標準ログの詳細については 第 7 章標準ログ を参照してください

43 図 2.1 システムログの出力契機 図 2.2 性能ログの出力契機 2.6 注意事項 RequestProcessor の拡張を行う場合 アプリケーションで使用する RequestProcessor を拡張したクラスに差し替える場合 同一 Struts 設定ファイル内では他の RequestProcessor を使用する事ができなくなります そのため Tiles 機能と拡張した RequestProcessor を同時に使用したい場合は TilesRequestProcessor をベースに拡張を行うなどの工夫が必要となります

44 キャンセル処理のセキュリティホール Struts までは Form のキャンセルボタンが押下された場合 検証処理が実行されずにユーザの業務ロジックが呼び出されてしまうセキュリティホールが存在しました そのため Struts では Struts 設定ファイルで明示的に許可しない限り デフォルトではキャンセル処理を受け付けない仕様に変更されました ( 受け付けた場合は InvalidCancelException がスローされる ) ただし キャンセル処理を許可した場合の動作は以前と何ら変化していないため 業務アプリケーション側でキャンセル処理を意識した実装が必要となります Struts カスタムタグライブラリを使用した JSP の表示について クライアントが使用する Web ブラウザの種類によっては 画面構成が崩れるなどの意図しない動作となる場合があります Struts 設定ファイルでのワイルドカード * の利用について ワイルドカード機能において 後方一致検索は未サポートとなります Action タグの unknown 機能で代替できる場合は そちらを使用して下さい Struts アプリケーション作成時の注意 Struts アプリケーションではクラス名 メソッド名 ファイル名などにマルチバイト文字や記号を使用した場合 意図した動作をしない場合があります Struts プラグイン検証機能の利用について プラグイン検証機能を使用する場合は <message-resources> タグも定義する必要があります DynaActionForm 利用時の注意 DynaActionForm のプロパティとしてプリミティブ型を指定した場合 initial 属性で初期値を設定しない場合例外が発生します DynaActionForm のプロパティとしてプリミティブ型を指定した場合 initial 属性で初期値を設定してください Struts マニュアルの誤記について Struts Users Guide[Tiles Tag Library] の definition タグの scope 属性の説明に誤りがあります 誤 :Specifies the variable scope into which the newly defined bean will be created. If not specified, the bean will be created in page scope. 正 :Specifies the variable scope into which the newly defined bean will be created. If not specified, the bean will be created in request scope. 標準ログについて Struts が出力する標準ログは ActionServlet がコントローラとして動作する場合に限定されます 上記以外の場合は標準ログが出力されません 2.7 チューニング ファイルアップロード機能利用時のパフォーマンスチューニングに関して ファイルアップロード機能では アップロードされたデータが Struts 設定ファイルで指定したしきい値 (256KB) を超える場合 そのデータをメモリ上からディスク資源に退避させます ( 以後 この退避したデータを一時ファイルと呼称します ) 業務運用で想定されるファイルサイズに対して 一時ファイルが作成されるしきい値の設定が適切でない場合 以下の問題が発生する可能性があります しきい値が小さ過ぎる場合 一時ファイルが頻繁に作成されるようになります アクセス速度の遅いディスク資源へのアクセスが発生するため スループットが低下する恐れがあります

45 また 適切な後始末が行われない場合 一時ファイルが削除されずに残ってしまい ディスク資源が枯渇する恐れがあります しきい値が大き過ぎる場合 一時ファイルの作成頻度を抑える事ができます ただし データサイズの大きいファイルがアップロードされた場合 ヒープ領域の圧迫による処理速度の低下 しいては OutOfMemoryError が発生する可能性があります 2.8 トラブルシューティング ワークユニット起動時の異常 ワークユニット起動時に ClassNotFoundException が発生する場合 以下の条件に該当する場合 ワークユニット起動時に ClassNotFoundException が発生し アプリケーションの活性化に失敗する場合があります アプリケーションが使用する jar ファイルを WAR ファイルに格納している場合 アプリケーションで使用する jar ファイルを ワークユニットのクラスパスに指定する事で 問題が解決する場合があります DynaActionForm の initial 属性に指定した値が正しく反映されない場合 以下の条件を満たす場合 initial 属性に指定した値が正しく反映されない場合があります DynaActionForm のプロパティとして配列を指定している initial 属性に "\" "?" "_" などを含む値を指定している commons-beanutils の仕様により "\" "?" "_" などの文字は配列要素の区切り文字として認識されます 詳細な仕様は commons-beanutils の仕様書で確認してください 不完全なレスポンスデータが返される場合がある レスポンス生成処理中に異常が発生した場合 正しいレスポンスが返却されない場合があります この場合 Web アプリケーションの設定や配備資材の内容に問題がある可能性があります コンテナログを参照し 問題を取り除いてください Tiles 機能を使用した Web アプリケーションで NullPointerException が発生する 以下の条件に該当する場合 TilesRequestProcessor が Tiles 定義情報を参照できないため NullPointerException が発生する場合があります Tiles 機能を使用 (Struts 設定ファイルの controller タグで TilesRequestProcessor を指定している ) しており Struts 設定ファイルの Plug-In タグで Tiles 設定ファイルを指定していない Tiles 機能を使用する場合は Tiles 設定ファイルも必ず指定する必要があります Tiles 機能を使用したJSPにアクセスした場合 例外が返却される以下の条件に該当する場合 Tiles 機能を使用したJSPにアクセスした場合に例外が返却される場合があります JSPファイルでtiles:insertタグが入れ子になって記述されている tiles:insertタグを入れ子にして記述しないでください レスポンスが返らない場合がある以下の条件に該当する場合 Webアプリケーションからのレスポンスが返されない場合があります JSPファイルにbean:includeタグでhref 属性に空文字を指定している href 属性に空文字を指定しないでください

46 第 3 章 Spring Framework 3.1 Spring Framework の概要 Spring Framework はコンポーネントの再利用性を高める事を目的とした DI と呼ばれるデザインパターンに基づいた Java/J2EE アプリケーションフレームワークです Spring Framework では 以下の機能を提供します DI コンテナ トランザクション抽象化レイヤ JDBC 抽象化レイヤ O/R マッピング連携 (TopLink,Hibernate,JDO,iBATIS など ) AOP MVC フレームワーク 本製品に含まれる Spring Framework では 以下の機能も提供します IJServer 間連携 JDBC の Symfoware エラーコード対応 一貫したログの出力 Spring Framework が提供する機能と本製品に含まれる Spring Framework が提供する機能について記載します 機能名 Spring Framework DI コンテナ トランザクション抽象化レイヤ JDBC 抽象化レイヤ O/R マッピング連携 (TopLink,Hibernate,JDO,iBATIS など ) AOP MVC フレームワーク ( 注 1) JTA によるトランザクション制御 ( 注 2) IJServer 間連携 JDBC の Symfoware エラーコード対応 一貫したログの出力 注 1)Interstage では ポートレット機能は未サポート 注 2)Spring Framework が持つ JTA のトランザクション属性の一部が未サポート DI コンテナ 本製品で提供する Spring Framework DI コンテナはコンポーネント ( クラス ) 間の依存関係をソースコードから取り除き 実行時まで依存関係を持たないようにするデザインパターンに基づいて作られたコンポーネント群を集中管理するための機能です Spring Framework においては オブジェクトが必要とする情報を Bean 定義ファイルと呼ばれる XML 形式の外部ファイルへ定義し アプリケーション実行時に DI コンテナが定義された情報を注入してオブジェクトのインスタンスを生成します DI コンテナを利用する事によって 以下の利点を得る事ができます アプリケーションの拡張性を高められる

47 単体テストが容易になる コンポーネントの可搬性を高められる トランザクション抽象化レイヤ Spring Framework では独自の一貫したトランザクション管理の抽象化を提供しています Spring Framework におけるトランザクションの抽象化は JTA やその他のトランザクション管理テクノロジとは結合していない独特なものです これにより 土台となるトランザクションインフラを切り離す事が可能となり 以下の利点を得る事ができます JTA JDBC Hibernate ibatis データベースレイヤや JDO のような異なるトランザクション API に対し 一貫したプログラミングモデルの提供 単純で使いやすいプログラミング的トランザクション管理 API の提供 Spring Framework のデータアクセス抽象化との結合 Spring Framework の宣言的トランザクション管理のサポート Spring Framework の設定により 上記の機能を利用する事でスケールアップ / スケールダウンが可能なアプリケーションを開発する事ができます JDBC 抽象化レイヤ Spring Framework では JDBC を抽象化したフレームワークを提供しています JDBC API を直接使用するより簡潔にデータアクセスコードを記述できるようになっています Spring Framework は以下の機能を提供します 冗長でエラーになりがちな例外処理をアプリケーションからフレームワークへ移す API アプリケーションが SQLException の代わりに動作するように意味のある Spring 固有のデータアクセス例外 例外処理 API によって アプリケーションは適切な SQL を発行し その結果を抽出する事に専念する事が可能になります また Spring Framework 固有のデータアクセス例外によって JDBC 特有のデータアクセス例外ではなくなるため アプリケーションでは throw される可能性があるすべての JDBC データアクセス例外を意識する必要がなくなります O/R マッピング連携 Spring Framework では Hibernate や JDO ibatis などの Object/Relational Mapping API を統合するレイヤを提供しています O/R マッピングモジュールを使用する事によって Spring Framework が持つ他の機能と O/R マッピングを組み合わせて使用可能になります これらにより Spring Framework では以下の利点を得る事ができます 効率の良く 簡単 安全なセッション管理 容易なリソース管理 利便性のある統合トランザクション管理 例外のラッピング ベンダ制約からの避難 容易なテスト AOP AOP はオブジェクト指向の欠点を補完する事ができるアスペクト指向に基づいたプログラミングです アプリケーションでのログ出力やエラー処理 トランザクション制御など プログラムごとに共通な処理を別のモジュールとして分離する事によって 機能の内容把握 管理 変更を容易にします AOP を利用する場合には Spring Framework の Bean 定義ファイルへ以下を定義します

48 処理を実行する条件 処理を実行するタイミング 実行する処理 これにより 条件を満たした場合に指定したタイミングで分離したプログラムを実行することが可能になります MVC フレームワーク Spring Framework が提供する MVC フレームワークは 処理の中核を担う Model(M) と画面への表示 出力を担う View(V) 入力内容に基づいて Model と View を制御する Controller(C) の 3 要素を組み合わせた MVC モデル 2 を採用し Web アプリケーション開発を容易にする事を目的としたフレームワークです Spring Framework は以下の 2 つの MVC フレームワークを持っています Spring Web MVC フレームワーク Spring Portlet MVC フレームワーク 本製品が提供する Spring Framework においては Spring Web MVC フレームワークのみをサポートします Web アプリケーション開発をサポートする Spring Web MVC フレームワークでは 以下の機能を提供します クライアントからの HTTP リクエスト 業務処理 処理結果表示までの画面遷移機能 クライアントからの入力データや業務処理の出力データの受け渡し機能 入力データの検証機能 処理結果をレンダリングするための View テクノロジとの連携機能 Spring タグライブラリ Spring Web MVC フレームワークは上記の機能によって Web アプリケーション開発を支援します JTA によるトランザクション制御機能 Spring Framework では JTA(Java Transaction API) を利用してトランザクション制御を行うためのクラスを提供しています Spring Framework の JtaTransactionManager クラスでは JTA の TransactionManager インタフェースを利用して 以下に記載する EJB と同等のトランザクション属性をサポートしています REQUIRED(EJB:Required) MANDATORY(EJB:Mandatory) REQUIRES_NEW(EJB:RequiresNew) NOT_SUPPORTED(EJB:NotSupported) SUPPORTS(EJB:Supports) NEVER(EJB:Never) 本製品で提供する Spring Framework では トランザクション属性の REQUIRES_NEW と NOT_SUPPORTED は 既存トランザクションが存在する場合には使用できません IJServer 間連携 Spring Framework では リモート呼び出し機能により別プロセスのオブジェクトを呼び出す事ができます ただし 別プロセスのオブジェクトを呼び出すためには 開発者が EJB アプリケーションを作成する必要があります 本製品で提供する Spring Framework においては 別プロセスの IJServer が管理しているオブジェクトを呼び出すために 開発者が作成する必要のある EJB アプリケーション部を提供する事によって EJB アプリケーションの知識がない場合でも別プロセスの IJServer が管理しているオブジェクトを呼び出す事を可能にします

49 3.1.9 Symfoware のエラーコードに対応した JDBC サポート機能 DB アクセスを行うアプリケーションでは 従来ベンダ固有のエラーコードを意識した処理が必要でしたが Spring Framework では システム例外やデータ不整合例外など DB ベンダ固有のエラーコードが判断できるように共通のデータベース例外クラスを提供しています 本製品で提供する Spring Framework においては Symfoware のエラーコードを Spring Framework が提供する例外クラスに関連付ける事によって アプリケーションでは Symfoware のエラーコードを意識した処理が不要になります 一貫したログの出力 本製品で提供する Spring Framework では 一連のアプリケーションはコンテキスト ID と呼ばれる識別情報に関連付けられます ログファイルにコンテキスト ID を付加してログメッセージを出力する事によって 一連のアプリケーションが出力したログメッセージを選定する事を可能にします 本機能の詳細については 第 7 章標準ログ を参照してください 3.2 Spring Framework の環境作成 Spring Frameworkを利用するためには 以下の手順で環境を作成します IJServerの作成 クラスパスの設定 アプリケーションの配備 IJServer の作成 Spring Frameworkアプリケーションを動作させるために必要なIJServerを作成します IJServerの作成 Interstage 管理コンソールを使用して IJServerワークユニットを作成します [ システム ] > [ ワークユニット ] > [ 新規作成 ] タブ 作成する IJServer のタイプは EJB アプリケーションのみ運用 以外を指定します 運用形態が分離型の場合 IJServer 間連携機能によって呼び出される IJServer のタイプには EJB アプリケーションのみ運用 または Web アプリケーションと EJB アプリケーションを別 JavaVM で運用 を指定します クラスパスの設定 IJServer のクラスパスへ Spring Framework の機能が動作するために必要な jar ファイルを設定します クラスパスの設定 Interstage 管理コンソールを使用して IJServer ワークユニットで Spring Framework の機能が動作するために必要な jar ファイルをクラスパスへ設定します [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 環境設定 ] タブ 以下の jar ファイルを設定します [Interstage のインストールディレクトリ ]\BAS\spring25\lib\spring25.jar [Interstage のインストールディレクトリ ]\BAS\spring25\lib\spring-webmvc25.jar

50 [Interstageのインストールディレクトリ]\BAS\lib\commons-logging jar [Interstageのインストールディレクトリ]\BAS\lib\apfwlogging.jar [Interstageのインストールディレクトリ]\APC\lib\uji.jar [Interstageのインストールディレクトリ]\APC\lib\ujief.jar [Interstageのインストールディレクトリ]\APC\lib\ujilog.jar [Interstageのインストールディレクトリ]\BAS\lib\apfwutils50.jar /opt/fjsvibs/spring25/lib/spring25.jar /opt/fjsvibs/spring25/lib/spring-webmvc25.jar /opt/fjsvibs/lib/commons-logging jar /opt/fjsvibs/lib/apfwlogging.jar /opt/fjsvwebc/lib/uji.jar /opt/fjsvapcef/lib/ujief.jar /opt/fjsvapclg/lib/ujilog.jar /opt/fjsvibs/lib/apfwutils50.jar アプリケーションの配備 作成したIJServerへ Spring Frameworkアプリケーションを配備します アプリケーションの配備操作 Interstage 管理コンソールを使用して IJServerワークユニットへSpring Frameworkアプリケーションファイルを配備します [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 配備 ] タブ 3.3 Spring Framework アプリケーションの開発 本項では Spring Frameworkアプリケーションの開発の手順を説明します AP 層の作成 Web 層の作成 定義ファイルの作成 リモート機能によるIJServer 間連携 Symfowareのエラーコードに対応した例外クラス Strutsとの連携 ibatisとの連携 Interstage Studio 上における Spring Framework アプリケーション開発用プロジェクトの作成方法については 3.4 Spring IDE による Spring Framework アプリケーションの作成 を参照してください アプリケーションの作成方法は運用形態によってそれぞれ異なります 運用形態が 基本型 の場合 Spring プロジェクト ネイチャーの追加を行った Web アプリケーションプロジェクト を作成し AP 層と WEB 層の資材および定義ファイルを WAR ファイルにまとめます

51 運用形態が IJServer 間連携による分離型 の場合 Spring プロジェクト ネイチャーの追加を行った Web アプリケーションプロジェクト と Spring Project または Spring プロジェクト ネイチャーの追加を行った java プロジェクト を作成します Spring プロジェクト ネイチャーの追加を行った Web アプリケーションプロジェクト にて WEB 層の資材と定義ファイルを WAR ファイルにまとめます Spring Project または Spring プロジェクト ネイチャーの追加を行った java プロジェクト にて AP 層の資材と定義ファイルを jar ファイルにまとめます 最後にエンタープライズアプリケーションプロジェクトを作成し jar ファイルを EAR ファイルにまとめます 運用形態別のアプリケーション構成図を以下に示します アプリケーション構成図 図 3.1 基本型 図 3.2 IJServer 間連携による分離型 AP 層の作成 Web 層からの要求に応じて呼び出される業務アプリケーションを作成します 業務アプリケーションでは データベースとのやり取りなどの処理を行い 処理結果を Web 層に返します EmployeeDao.java(DAO のインタフェース ) package test; public interface EmployeeDao { public void init(); public void destroy();

52 public String[] execdaoselect(); public boolean execdaoinsert(string Employee); public boolean execdaodelete(string Employee); } EmployeeDaoImpl.java(DAO の実装クラス ) package test; public class EmployeeDaoImpl implements EmployeeDao{ public void init() { } // 初期処理 public void destroy() { } // 終了処理 // AOPが差し込まれる対象となるメソッド public String[] execdaoselect(){ String[] data = null; // データベースから社員全員の名前を取得します //data[] =... return data; } // AOPが差し込まれる対象となるメソッド public boolean execdaoinsert(string Employee){ boolean ret = true; // データベースに指定した社員名を登録します //ret =... return ret; } // AOPが差し込まれる対象となるメソッド

53 public boolean execdaodelete(string Employee){ boolean ret = true; // データベースから指定した社員を削除します //ret =... return ret; } } ListService.java( 業務アプリケーションのインタフェース ) package test; public interface ListService { } public String[] getemployeelist(); ListServiceImpl.java( 業務アプリケーションの実装クラス ) package test; public class ListServiceImpl implements ListService { private EmployeeDao employeedao; public void setemployeedao(employeedao employeedao) { // DIによって生成されたインスタンスが格納されます this.employeedao = employeedao; } public String[] getemployeelist() { // 社員の名前一覧を返却します String[] employeelist = employeedao.execdaoselect(); } } return employeelist; aopdatabasecheck.java(aop で差し込む処理 ) package test;

54 import org.aspectj.lang.proceedingjoinpoint; public class aopdatabasecheck{ // データベースに関するチェック処理を指定されたメソッドの前後で処理を行います public Object aroundmessage( ProceedingJoinPoint pjp ) throws Throwable { try{ // DBチェック処理 }catch(exception e){ throw e; } // AOP によって処理を差し込んだため もとの処理を呼び出します Object retval = pjp.proceed() ; // メッセージ System.out.println("..."); } } return retval ; Web 層の作成 クライアントからの要求を AP 層に引き渡すコントローラを作成します また 業務アプリケーションの処理結果などをビューとして表示するための JSP を作成します 業務アプリケーションを呼び出すコントローラの作成例を以下に示します ViewEmployeeListController.java( 社員一覧を表示するコントローラ ) package test;... import org.springframework.context.applicationcontext; import org.springframework.web.servlet.modelandview; import org.springframework.web.servlet.mvc.abstractcontroller; public class ViewEmployeeListController extends AbstractController{ public ModelAndView handlerequestinternal(httpservletrequest req, HttpServletResponse res) throws Exception {

55 Map model = new HashMap(); // Bean を取得します ApplicationContext context = getwebapplicationcontext(); ListService employee =(ListService)context.getBean("businessService"); // 業務アプリケーションから社員の名前一覧を取得します String[] EmployeeList = null; EmployeeList = employee.getemployeelist(); // 処理結果をビューに伝播するため model に設定します model.put("employeelist", EmployeeList); // ビューで表示するために ModelAndView オブジェクトを作成し 処理結果を格納します ModelAndView mav = new ModelAndView("ViewEmployeeList", model); return mav; } } ViewEmployeeList.jsp( 社員一覧を表示するビュー ) <%@ page contenttype="text/html; charset=utf-8" %> <%@ taglib prefix="c" uri=" %> <html> <head> <title> 社員名簿 </title> </head> <body> <table border="1" cellspacing="2" cellpadding="3"> <tr> <td><b>no.</b></td> <td><b> 名前 </b></td> </tr> <!-- (1) --> <c:foreach var="employee" items="${employeelist}" varstatus="no">

56 <tr> <td><b></b><c:out value="${no.index + 1}"/></td> <td><c:out value="${employee}"/></td> </tr> </c:foreach> </table> </body> </html> (1) ModelAndView に設定された社員全員の名前のリスト employeelist の情報を表示します 定義ファイルの作成 Spring Framework ランタイムは作成した Bean 定義ファイルに従って動作します 運用形態に応じて用意する Bean 定義ファイル数は異なり 基本型の場合は 最低 1 つの Bean 定義ファイルを作成します IJServer 間連携による分離型の場合は 最低 2 つの Bean 定義ファイルを作成します Bean 定義ファイルには Spring Framework アプリケーションで利用するクラスを Bean として定義します 必要に応じて AOP や DB トランザクションなどの定義を記述します この例では 基本型の Bean 定義ファイルの例を記述します applicationcontext.xml またはサーブレット名 -servlet.xml <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:aop=" xmlns:p=" xmlns:tx=" xsi:schemalocation=" <!-- (1) AOP 定義 --> <aop:config> <aop:aspect id="sample" ref="sampleadvice"> <aop:around pointcut-ref="pc1" method="aroundmessage" /> <aop:pointcut expression="execution(* execdao*())" id="pc1" />

57 </aop:aspect> </aop:config> <!-- AOP 定義から参照されるクラスを bean として定義します --> <bean id="sampleadvice" class="test.aopdatabasecheck" /> <!-- (2) ビューの定義 --> <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <!-- ビュー内でJSTL( 標準タグライブラリ ) を使用する場合 --> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview"/> <property name="prefix" value="/web-inf/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!-- (3) コントローラの定義 --> <bean id="viewcontroller" class="test.viewemployeelistcontroller" /> <!-- (4) ハンドラマッピング--> <bean id="urlmapping" class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="/index.html">viewcontroller</prop> </props> </property> </bean> <!-- (5) 業務アプリケーションで使用するBeanの定義 --> <bean id="businessservice" class="test.listserviceimpl"> <property name="employeedao" ref="employeedao00"/> </bean> <bean id="employeedao00" class="test.employeedaoimpl" /> </beans> (1) AOP 定義 指定したクラス / メソッドに 指定したタイミングで Bean として定義したクラスの指定したメソッドを実行します 処理を実行するクラス / メソッドには 前方 / 後方 / 完全一致などの条件を指定することができ 処理を実行するタイミングは 指定したメソッドの直前 / 直後 / 前後や例外発生時などを指定することができます

58 AOP 機能を利用する場合には 以下に格納されているモジュールをクラスパスに定義する必要があります [Interstage のインストールディレクトリ ]\BAS\lib\aspectjweaver.jar /opt/fjsvibs/lib/aspectjweaver.jar (2) ビューの定義 業務アプリケーションの処理結果をビューで表示するためにビューリゾルバを指定します JSTL( 標準タグライブラリ ) を使用する場合には 以下に格納されているモジュールをクラスパスに定義する必要があります [Interstage のインストールディレクトリ ]\APC\lib\jstl.jar /opt/fjsvapcst/struts/contrib/struts-el/lib/jstl.jar また JSTL1.1に対応した標準タグライブラリ (standard.jar) を用意してクラスパスに定義する必要があります (3) コントローラの定義業務アプリケーションおよび業務アプリケーションの処理結果を格納するコントローラを指定します (4) ハンドラマッピングリクエストURLとコントローラを関連付けるための条件をハンドラマッピングに定義します 定義しない場合は デフォルトでBeanNameUrlHandlerMappingが使用されます (5) 業務アプリケーションで使用するBeanの定義 Beanとして定義したクラスは DIによって実行時に自動的にインスタンスが生成されます bean タグの id 属性に使用可能な文字は XML 名前空間の NCName 型です NCName 型に準拠しない文字を使用したい場合は id 属性の代わりに name 属性を使用する必要があります WAR ファイルの作成 運用形態が基本型の場合は WAR ファイルを作成します WAR ファイルの作成方法については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください

59 EAR ファイルの作成 運用形態が分離型の場合には WAR ファイルと EAR ファイルを作成します EAR ファイルのディレクトリ構成については リモート機能による IJServer 間連携 を参照して Spring Framework のアプリケーション開発に合せた構成にしてください WAR ファイルおよび EAR ファイルの作成方法については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください アプリケーションの配備 作成した WAR ファイルまたは EAR ファイルを Interstage 管理コンソールから配備します リモート機能による IJServer 間連携 IJServer 間連携機能は Spring Framework アプリケーションから別プロセスの IJServer へ配備された Spring Framework アプリケーションの呼び出しを実現します 本機能を利用することにより アプリケーションを分離することが可能になるため 負荷分散などのスケーラブルな運用ができます IJServer 間連携機能による Spring Framework アプリケーションの構成および呼び出しの流れを以下に示します 図 3.3 リモート呼び出し機能による IJServer 間連携機能の構成図 IJServer 間連携機能を利用した Spring Framework アプリケーションの開発 IJServer 間連携機能を利用した Spring Framework アプリケーションを開発するために 開発者は Spring プロジェクト ネイチャーの追加を行った Web アプリケーションプロジェクト と Spring Project または Spring プロジェクト ネイチャーの追加を行った java プロジェクト を作成します Spring プロジェクト ネイチャーの追加を行った Web アプリケーションプロジェクト にて WEB 層の資材と定義ファイルを WAR ファイルにまとめます Spring Project または Spring プロジェクト ネイチャーの追加を行った java プロジェクト にて AP 層の資材と定義ファイルを jar ファイルにまとめます 最後にエンタープライズアプリケーションプロジェクトを作成し jar ファイルを EAR ファイルにまとめます 作成するエンタープライズアプリケーションは 以下の構成にする必要があります EAR ファイルの構成図

60 3.3 Spring Framework アプリケーションの開発 の例を元に アプリケーションを作成します Web 層のサーバアプリケーションを Web アプリケーション AP 層のサーバアプリケーションを 業務アプリケーション とします 1. 業務アプリケーションの開発 (AP 層の作成 ) 以下のアプリケーションを作成します - EmployeeDao.java(DAO のインタフェース ) - EmployeeDaoImpl.java(DAO の実装クラス ) - ListService.java( 業務アプリケーションのインタフェース ) - ListServiceImpl.java( 業務アプリケーションの実装クラス ) - AopDatabaseCheck.java(AOP で差し込む処理 ) アプリケーションの作成例は 3.3 Spring Framework アプリケーションの開発 を参照してください IJServer 間連携機能にてユーザ定義クラスを利用する場合 クラスをシリアライズする必要があります 2. Web アプリケーションの開発 (Web 層の作成 ) 以下のアプリケーションを作成します - ViewEmployeeListController.java( 社員一覧を表示するコントローラ ) - ViewEmployeeList.jsp( 社員一覧を表示するビュー ) アプリケーションの作成例は 3.3 Spring Framework アプリケーションの開発 を参照してください

61 IJServer 間連携機能にてユーザ定義クラスを利用する場合 クラスをシリアライズする必要があります また 業務アプリケーションで作成したインタフェースを用意します - ListService.java( 業務アプリケーションのインタフェース ) 3. 定義ファイルの作成 a. 業務アプリケーションの Bean 定義ファイルを作成 IJServer 間連携機能によって呼び出される業務アプリケーションの Bean 定義ファイルを作成します applicationcontext.xml( ファイル名は固定値 ) <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:aop=" xmlns:p=" xmlns:tx=" xsi:schemalocation=" <aop:config> <aop:aspect id="sample" ref="sampleadvice"> <aop:around pointcut-ref="pc1" method="aroundmessage" /> <aop:pointcut expression="execution(* execdao*())" id="pc1" /> </aop:aspect> </aop:config> <bean id="sampleadvice" class="test.aopdatabasecheck"/> <!-- Webアプリケーションから呼び出される業務アプリケーションのBean 定義 --> <bean id="remotebusinessservice" class="test.listserviceimpl"> <property name="employeedao" ref="employeedao00"/> </bean>

62 <bean id="employeedao00" class="test.employeedaoimpl"/> </beans> b. Web アプリケーションの Bean 定義ファイルを作成 IJServer 間連携機能を動作させるために Web アプリケーションの Bean 定義ファイルを作成します applicationcontext.xml またはサーブレット名 -servlet.xml <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:aop=" xmlns:p=" xmlns:tx=" xsi:schemalocation=" <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.jstlview"/> <property name="prefix" value="/web-inf/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="viewcontroller" class="test.viewemployeelistcontroller" /> <bean id="urlmapping" class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="/index.html">viewcontroller</prop> </props> </property> </bean> <!-- (1) IJServer 間連携機能を動作させるための Bean 定義 -->

63 <bean id="businessservice" class="com.fujitsu.interstage.apfw.springframework.ejb.access.remotestatelesssessionproxyfactorybean"> </bean> <!-- 業務アプリケーションの BeanId を定義します --> <property name="beanid" value="remotebusinessservice"/> <!-- 業務アプリケーションのインタフェースを定義します --> <property name="businessinterface" value="test.listservice"/> </beans> (1) IJServer 間連携機能を動作させるための Bean 定義 - IJServer 間連携機能のクラス com.fujitsu.interstage.apfw.springframework.ejb.access.remotestatelesssessionproxyfactorybean を指定します - Web アプリケーションから呼び出す業務アプリケーションの BeanId を定義します ( 業務アプリケーションの Bean 定義ファイルに記述した BeanId と同じにします ) - 業務アプリケーションのインタフェースを定義します 上記で定義したインタフェースと同じものを Web アプリケーションにも格納してください 4. クラスファイルのパッケージ化 a. EAR ファイルの作成業務アプリケーションや Bean 定義ファイルは EAR ファイルとして作成します また 作成する EAR ファイルには IJServer 間連携機能のモジュールを同梱する必要があります EAR ファイルを作成する方法を以下に示します - EAR ファイル配下に Shared/lib ディレクトリを作成し 業務アプリケーションと Bean 定義ファイルを圧縮した jar ファイルを格納します - EAR ファイル配下に IJServer 間連携機能のモジュールを格納します IJServer 間連携機能のモジュールは以下のディレクトリに格納されています [Interstage のインストールディレクトリ ]\BAS\spring25\lib\apfw-spring-ejb-api.jar /opt/fjsvibs/spring25/lib/apfw-spring-ejb-api.jar - EAR ファイルの META-INF ディレクトリ配下に以下の deployment descriptor(application.xml) を格納します application.xml <?xml version="1.0" encoding="utf-8"?> <application xmlns=" xmlns:xsi="

64 xsi:schemalocation=" version="1.4"> <module> <ejb>apfw-spring-ejb-api.jar</ejb> </module> </application> EAR ファイルの作成の詳細に関しては Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください b. WAR ファイルの作成 Web アプリケーションや Bean 定義ファイルを WAR ファイルとして作成します WAR ファイルの作成の詳細に関しては Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください 5. IJServer の設定 IJServer 間連携機能を利用する場合には Web アプリケーションを運用する IJServer と業務アプリケーションを運用する IJServer でそれぞれ異なる設定を行う必要があります 以下に IJServer 間連携機能を利用する場合の IJServer の設定について説明します a. Web アプリケーションを運用する IJServer の設定 Web アプリケーションを運用する IJServer のクラスパスに Spring Framework の機能が動作するために必要な jar ファイルと IJServer 間連携機能の jar ファイルを設定します Spring Framework の機能が動作するために必要な jar ファイルの設定については 3.2 Spring Framework の環境作成 を参照してください クラスパスの設定 Interstage 管理コンソールを使用して IJServer 間連携機能の jar ファイルをクラスパスへ設定します - [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 環境設定 ] タブ 以下の jar ファイルを設定します [Interstage のインストールディレクトリ ]\BAS\spring25\lib\apfw-spring25.jar /opt/fjsvibs/spring25/lib/apfw-spring25.jar b. 業務アプリケーションを運用する IJServer の設定 業務アプリケーションを運用する IJServer のクラスパスに Spring Framework の機能が動作するために必要な jar ファイルと IJServer 間連携機能の jar ファイルを設定します Spring Framework の機能が動作するために必要な jar ファイルの設定については 3.2 Spring Framework の環境作成 を参照してください クラスパスの設定 Interstage 管理コンソールを使用して IJServer 間連携機能の jar ファイルをクラスパスへ設定します - [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 環境設定 ] タブ

65 以下の jar ファイルを設定します [Interstage のインストールディレクトリ ]\BAS\spring25\lib\apfw-spring-ejb-impl.jar /opt/fjsvibs/spring25/lib/apfw-spring-ejb-impl.jar 6. アプリケーションの配備作成した WAR ファイルまたは EAR ファイルを Interstage 管理コンソールから配備を行います EJB アプリケーション名を変更して EAR ファイルを配備した場合 IJServer 間連携機能を利用するには Web アプリケーションの Bean 定義ファイルに EJB アプリケーション名を定義する必要があります EJB アプリケーション名を sampleejb に変更した場合の例を以下に示します <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:aop=" xmlns:p=" xmlns:tx=" xsi:schemalocation=" beans/spring-beans-2.5.xsd <!-- IJServer 間連携機能を動作させるための Bean 定義 --> <bean id="businessservice" class="com.fujitsu.interstage.apfw.springframework.ejb.access.remotestatelesssessionproxyfactorybean"> </bean> <!-- 業務アプリケーションの BeanId を定義します --> <property name="beanid" value="remotebusinessservice"/> <!-- 業務アプリケーションのインタフェースを定義します --> <property name="businessinterface" value="test.listservice"/> <!-- EJB アプリケーション名を定義します --> <property name="jndiname" value="sampleejb"/>

66 </beans> Interstage 管理コンソールの操作方法については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください 7. ネーミングサービスの設定業務アプリケーションが Web アプリケーションとは別のマシン環境にある場合 ネーミングサービスの設定を行う必要があります ネーミングサービスの設定 Interstage 管理コンソールを使用して ネーミングサービスを運用するマシンのホスト名を設定します - [ システム ] > [ 環境設定 ] タブ > 詳細設定 > ネーミングサービス詳細設定 ネーミングサービスの設計については Interstage Business Application Server セットアップガイド を参照してください Symfoware のエラーコードに対応した例外クラス 本製品に含まれる Spring Framework では Symfoware のエラーコードに対応した例外クラスとのマッピング情報が定義されています 定義されているマッピング情報を元に Spring Framework が例外を返却するため ユーザが作成するアプリケーションは Symfoware のエラーコードを意識する必要がありません 以下に Spring Framework がマッピング情報を元に返却する例外クラスについて説明します No. 例外クラス説明 1 DataAccessException 以降で説明する例外クラスのスーパークラスです スーパークラスのため 本例外はスローされません 2 BadSqlGrammarException SQL 文法に誤りがある場合にスローされます 3 InvalidResultSetAccessException データベースの結果セットが無効な形式である場合にスローされます 4 DataAccessResourceFailureException 接続以外の資源へのアクセスへ失敗した場合にスローされます 5 PermissionDeniedDataAccessException アクセス権限がない場合にスローされます 6 DataIntegrityViolationException 挿入または 更新の結果 データの一貫性が保てなくなった場合にスローされます 7 CannotAcquireLockException ロックに失敗した場合にスローされます 8 DeadlockLoserDataAccessException デッドロックが発生した場合にスローされます 9 CannotSerializeTransactionException 10 UncategorizedSQLException トランザクション分離レベルが SERIALIZABLE でかつ 他のトランザクションの完了待ちになったトランザクションが完了しなかった場合にスローされます 発生したエラーコードが No.2~9 の例外クラスに該当しない場合にスローされます EmployeeDaoImpl を元に BadSqlGrammarException/UncategorizedSQLException/DataAccessException クラスを使用した例外処理の例を以下に示します package test; import org.springframework.dao.dataaccessexception; import org.springframework.jdbc.badsqlgrammarexception; import org.springframework.jdbc.uncategorizedsqlexception;

67 public class EmployeeDaoImpl implements EmployeeDao{ public boolean execdaoinsert(string Employee){ boolean ret = true; try{ // データベースアクセス処理 } catch(badsqlgrammarexception bage){ // SQL 文法に誤りエラー時の任意の処理 } catch(uncategorizedsqlexception use){ // SQL 文法に誤りエラー以外の任意の処理 } catch(dataaccessexception dae){ // 上記エラー以外の任意の処理 } return ret; } } Spring Framework が返却する例外クラスを利用することのメリット Spring Framework が返却する例外クラスを利用する場合 以下のメリットがあります Spring Framework がマッピング情報を元に Symfoware のエラーコードに対応した Spring Framework が持つ例外クラスをスローするため Symfoware のエラーコードを意識して例外処理を作成する必要がありません 業務データベースを他のデータベースに変更する場合 Spring Framework が持つ例外クラスをキャッチして例外処理を作成しているため ソースコードを変更せずに移行することができます Struts との連携 Struts と Spring Framework を連携させることにより Struts を利用して構成したアプリケーションにおいても Spring Framework の機能を利用することが可能になります 連携のメリット Struts と Spring Framework を連携させることにより Struts 利用者 Spring Framework 利用者の双方に以下のようなメリットがあります Struts 利用者 Spring Framework 利用者 Spring Framework が持つ AOP や DI などの機能を利用することが可能になります Struts が持つ よりシンプルな WebMVC フレームワークを利用した開発が可能になります Action クラスに対する依存性の注入 Spring Framework と連携することによって DI コンテナの機能を利用することが可能になります DI コンテナの利用方法については 3.3 Spring Framework アプリケーションの開発 を参照してください

68 Action クラスに対する AOP の適用 Action クラスが Spring Framework の DI コンテナの管理下にあるとき Action クラスに対する AOP の適用が可能になります 以下に 適用例を示します Login クラス ( 業務ロジッククラス ) package test; public class Login { public boolean checkid(string userid) { // 認証処理 return true; } } SampleAdvice クラス (AOP で挿入したい処理を実装したクラス ) package test; public class SampleAdvice { public void printmsg(){ System.out.println("AOPで処理が挿入されました "); } } Spring Framework の Bean 定義ファイル (AOP に関する定義を記述 ) <beans> <aop:config> <! >

69 <aop:aspect id="helloaspect" ref="aopclass"> 1 <! > <aop:before method="printmsg" pointcut-ref="pc1" /> <! > <aop:pointcut expression="execution(* execute(..))" id="pc1" /> </aop:aspect> </aop:config> <bean id="aopclass" class=" test.sampleadvice" /> </beans> 1 ref 要素でbean id AOPClass を参照しています 本サンプルにおけるAOPの定義は以下に示す通りです 1. AOPで挿入する処理を持つクラス - SampleAdviceクラス 2. 実行するメソッドと実行条件 - 対象メソッドが実行される前にSampleAdviceクラスのprintMsg() メソッドを実行 3. AOPの対象メソッド - execute という名称のメソッド ( 完全一致のみ ) 自作 Action クラスへの AOP 適用イメージ package test; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.struts.action.action; import org.apache.struts.action.actionform; import org.apache.struts.action.actionmapping; import org.apache.struts.action.actionforward; import org.apache.struts.action.dynaactionform; public class SampleAction extends Action{ // AOPによって ここに処理が挿入されます public ActionForward execute(actionmapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm dynaform = (DynaActionForm)form;

70 String userid = dynaform.getstring("userid"); if(userid.equals("")){ userid = " ユーザ名を入力して下さい "; } // 変数 useridの値を出力します System.out.println(userId); // Actionクラス内で呼び出す業務ロジックです Login login = new Login(); boolean result =login.checkid(userid); if (true == result){ // 業務処理成功時 return map.findforward("success"); } // 業務処理失敗時 return map.findforward("failure"); } } 以下に 本サンプル実行時の処理結果を示します 処理結果 AOPで処理が挿入されました spring (HTMLフォームで入力した値) AOP の設定によっては 処理を挿入する対象を複数とすることも可能です 連携概要 概要 Struts から Spring Framework の DelegatingActionProxy クラスを Action クラスとして呼び出し クラス内部で改めて Action クラスの Bean を取得して呼び出しを行います 構成図 以下に 本連携における構成図を示します

71 図 3.4 Struts-Spring 連携の構成図 WebApplicationContext Spring FrameworkのBean 定義ファイルの情報を保持します クラスパスの設定 IJServerのクラスパスへ機能連携のために必要なjarファイルを設定します 設定手順については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください 以下のjarファイルを設定します [Interstageのインストールディレクトリ]\BAS\struts12\lib\struts12.jar [Interstageのインストールディレクトリ]\BAS\spring25\lib\spring25.jar [Interstageのインストールディレクトリ]\BAS\spring25\lib\spring-webmvc25.jar [Interstageのインストールディレクトリ]\BAS\spring25\lib\spring-webmvc-struts25.jar [Interstageのインストールディレクトリ]\BAS\lib\commons-beanutils jar [Interstageのインストールディレクトリ]\BAS\lib\commons-digester jar [Interstageのインストールディレクトリ]\BAS\lib\aopalliance.jar [Interstageのインストールディレクトリ]\BAS\lib\aspectjweaver.jar [Interstageのインストールディレクトリ]\BAS\lib\cglib-nodep2.1_3.jar [Interstageのインストールディレクトリ]\BAS\lib\commons-logging jar [Interstageのインストールディレクトリ]\BAS\lib\apfwlogging.jar /opt/fjsvibs/struts12/lib/struts12.jar /opt/fjsvibs/spring25/lib/spring25.jar /opt/fjsvibs/spring25/lib/spring-webmvc25.jar /opt/fjsvibs/spring25/lib/spring-webmvc-struts25.jar /opt/fjsvibs/lib/commons-beanutils jar

72 /opt/fjsvibs/lib/commons-digester jar /opt/fjsvibs/lib/aopalliance.jar /opt/fjsvibs/lib/aspectjweaver.jar /opt/fjsvibs/lib/cglib-nodep2.1_3.jar /opt/fjsvibs/lib/commons-logging jar /opt/fjsvibs/lib/apfwlogging.jar Struts-Spring 連携のための手順以下に連携機能の利用手順を示します Struts 設定ファイル Action 定義非連携時と同様にaction-mappingsタグを記述しますが actionタグのtype 属性を以下のように定義します Action 定義の詳しい方法については 第 2 章 Struts の 2.3 Strutsアプリケーションの開発 を参照して下さい <action-mappings> <action path="/login" name="loginform" type="org.springframework.web.struts.delegatingactionproxy"> <forward name="success" path="/web-inf/jsp/loginsuccess.jsp" /> <forward name="failure" path="/web-inf/jsp/loginerror.jsp" /> </action> </action-mappings> Spring Framework の Bean 定義ファイル 連携させる Action クラスの Bean 定義を追加 <beans> <!-- 1. Actionクラスの定義 --> <bean name="/login" class="test.sampleaction"> <!-- 2. ActionクラスへのDI 定義 --> <property name="loginservice" ref="injectionclass" /> </bean> <bean name="injectionclass" class="test.login" />

73 </beans> 1. Action クラスの定義連携させる Action クラスを Bean として定義します name 属性の値は Struts 設定ファイルで定義した action タグの path 属性の値と一致させる必要があります class 属性の値は連携する Action クラスを定義します 2. Action クラスへの DI 定義 Action クラスに対して依存性を注入する場合は 3.3 Spring Framework アプリケーションの開発 と同様の手順で実現することが可能です bean タグの id 属性には / ( スラッシュ ) で始まる値を指定することができません そのため id 属性ではなく必ず name 属性を指定します bean タグにはワイルドカードは使用できません そのため Struts 設定ファイルで定義した action タグの path 属性の値にワイルドカードを使用している場合は 対応する bean タグを複数定義する必要があります Action クラス Action クラスを作成 Struts の Action クラスを継承したクラスを作成します 詳しい作成方法については 第 2 章 Struts の 2.3 Struts アプリケーションの開発 を参照してください package test; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.struts.action.action; import org.apache.struts.action.actionform; import org.apache.struts.action.actionmapping; import org.apache.struts.action.actionforward; import org.apache.struts.action.dynaactionform; public class SampleAction extends Action{ // DIコンテナのセッターインジェクションを利用したActionクラスへの依存性の注入 Login login = null; public void setloginservice(login login){ this.login = login; }

74 public ActionForward execute(actionmapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm dynaform = (DynaActionForm)form; String userid = dynaform.getstring("userid"); if(userid.equals("")){ } userid = " ユーザ名を入力して下さい "; // Actionクラス内で呼び出す業務ロジックです boolean result = login.checkid(userid); if (true == result){ // 業務処理成功時 return map.findforward("success"); } // 業務処理失敗時 return map.findforward("failure"); } } ibatis との連携 Spring Framework は ibatis と連携する事によって ユーザが開発したアプリケーションの DAO で O/R マッピング機能を利用する事が可能になります ibatis と連携する場合 以下のクラスを利用します org.springframework.orm.ibatis.sqlmapclienttemplate org.springframework.orm.ibatis.support.sqlmapclientdaosupport ibatis と連携する事によって Spring Framework アプリケーションで ibatis の効果を得られますが コネクションの管理機能は Spring Framework ibatis の双方がそれぞれ持っています 本製品においては Spring Framework でコネクションを管理する方法を推奨とします 3.4 Spring IDE による Spring Framework アプリケーションの作成 基本的な操作 本章では Spring IDE の基本的な操作について説明します Spring プロジェクトの作成 Spring IDE を使用して Spring プロジェクトを生成する手順を以下に示します

75 1. メニュー [ ファイル ] > [ 新規 ] > [ プロジェクト ] を選択すると [ 新規プロジェクト ] 画面に移行します

76 2. [Spring] > [Spring Project] を選択し [ 次へ (N)>] ボタンをクリックすると [New Spring Project] 画面に移行します - [ プロジェクト名 ] にプロジェクト名を入力します ここでは 例として Studentsearch という名前を入力しています - [ デフォルトロケーションの使用 ] チェックボックスは デフォルトでチェックを入れます チェックを入れていない場合 [ 参照 ] ボタンをクリックすることで所在パスを変更できます - [List of Config file suffixes] は Config ファイルの拡張子を設定します デフォルトは xml です - [Create a Java project] は Java プロジェクトを作成します チェックボックスは デフォルトでチェックを入れます 3. [ 終了 (F)] ボタンをクリックすると 以下のような Studentsearch という Spring Project が生成されます また 必要な Spring ライブラリが自動で追加されます Spring の構成ファイルの作成 Spring IDE を使用して Spring の構成ファイルを生成する手順を以下に示します

77 1. メニュー [ ファイル ] > [ 新規 ] > [ その他 ] を選択すると [ 新規 ] 画面に移行します

78 2. [Spring] > [Spring Bean Definition] を選択し [ 次へ (N)>] ボタンをクリックすると [Create a new Spring Bean Definition file] 画面に移行します - リストボックスから構成ファイルが所属する Spring プロジェクトフォルダを選択します - [ ファイル名 ] に構成ファイル名を入力します Spring プロジェクトのみで Spring Bean という構成ファイルを作成できます

79 3. [ 次へ (N)>] ボタンをクリックすると [Select XSD namespace] 画面に移行します - XSD のネームスペースリストにおいて 必要となるネームスペースチェックボックスにチェックを入れ かつ当該ネームスペース名を選択することで 下記のリストボックスから異なるバージョンを選択できます バージョンを選択する場合 1 つのみのチェックボックスにチェックを入れます 選択しない場合 デフォルトのバージョンを利用します

80 4. [ 次へ (N)>] ボタンをクリックすると [Select Bean Config Sets] 画面に移行します - リストから Bean Config Sets を選択し 当該 Spring Bean Definition ファイルを Bean Config Sets に追加します 上記の図においての test は Bean Config Sets です その作成方法については 複数の構成ファイルに分割する を参照してください 5. [ 終了 (F)] ボタンをクリックすると ターゲットプロジェクトに applicationcontext.xml というファイルが新規作成されます 詳細を以下に示します Spring プロジェクト ネイチャーの追加 [Add Spring Project Nature] を使用して 普通の Java プロジェクトを Spring プロジェクトに変更できます また [Remove Spring Project Nature] を使用して Spring プロジェクトを普通の Java プロジェクトに変更できます

81 1. Java プロジェクトを選択し 右クリックメニューから [Spring Tools]>[Add Spring Project Nature] を選択します 当該プロジェクトが Spring Project Nature に追加されると 当該プロジェクトの右上の J フラグが S フラグに変更されます また

82 必要な Spring ライブラリが自動で追加されます 詳細を以下に示します 複数の構成ファイルに分割する Spring IDE は Bean Config Sets をサポートします 複数の Bean Config File を Bean Config Sets に追加して 管理することができます Config Files を作成する手順を以下に示します 1. Spring Project を選択し 右クリックメニューを開き [ プロパティ ] を選択すると プロパティのダイアログボックスがポップアップされます ダイアログボックスから [Spring] >[Beans Support] を選択し Beans Support から [Config Files] タブインデックスを選択すると 以下の画面に移行します

83 2. [Add] ボタンをクリックすると [Spring Bean Configuration Selection] 画面に移行します

84 3. 追加する Config File を選択し [OK] をクリックすると Config Files が追加された 以下の画面に移行します 追加された後 Config Files が Spring Explorer ビューに表示されます Config Sets を作成する手順を以下に示します 1. Spring Project を選択して 右クリックメニューを開き [ プロパティ ] を選択すると プロパティのダイアログボックスがホップアップされます ダイアログボックスから [Spring]>[Bean Support] を選択し Bean Support から [Config Sets] タブインデックスを選択すると 以下の

85 画面に移行します

86 2. [New] ボタンをクリックすると [Create new Spring Bean Config Set] 画面に移行します - Name [Name] に Beans 構成セットの名前を指定します - Enable bean override [Enable bean override] のチェックボックスにチェックを入れると 同じ ID を持つ複数の Beans が最新の Beans に上書きされます ( 有効化した場合 Bean の複数定義はエラーとして扱いません ) - Is incomplete [Is incomplete] のチェックボックスにチェックを入れると この構成セットがほかの構成セットで定義されている Bean 設定を参照できます ( 有効化した場合 参照が解決されない Beans はエラーとして扱いません ) - Select Spring bean configuration files [Select Spring bean configuration files] リストボックスから必要となる Config files を選択します

87 3. [OK] ボタンをクリックすると Config Sets が作成されます 詳細を以下に示します 4. [OK] ボタンをクリックすると Config Sets が Spring Explorer ビューに表示されます 詳細を以下に示します Config Sets を作成する前に Config Files を追加する必要があります Spring Explorer 画面の表示 Spring Explorer ビューは フィルタツリーであり 作業領域における全ての Spring プロジェクトを表示します Spring Explorer ビューを開く方式を以下に示します

88 1. [ ウィンドウ ] > [ ビューの表示 ] > [ その他 ] を選択すると [ ビューの表示 ] 画面に移行します 2. [Spring] > [Spring Explorer] を選択すると Spring Explorer ビューが開かれます そのビューは 階層ビューであり 以下の内容を含みます - Spring プロジェクトにおける Beans Config ファイルおよび Beans Config Sets - BeansConfig ファイルに定義された Bean および異なるノードの調整アイコン - Bean ノードのプロパティ プロパティの値 選択したノードにより 右クリックメニューから 以下の機能を使用できます Springプロジェクトのプロパティを開く 対応するBean classを開く 対応するBean Configファイルを開く 対応するBean Graphを開き Beanの構成およびBean 間の依頼関係をグラフィカルに表示する Spring Explorerビューのツールバーから 以下の機能を使用できます

89 Bean エレメントのソート ノードの縮小 Spring エレメントのカスタマイズやフィルタリング Spring 構成ファイルをグラフィカルに表示する Spring IDE では Bean Graph を使用して各 bean の構成および bean 間の依頼関係の参照を容易に行うことができます 1. Spring Explorer ビューから Beans Config file を選択し 右クリックメニューから [Open Graph] を選択し 当該ファイルにおける全ての Bean のグラフを開きます 2. [Open Graph] を選択し 以下の画面を開きます 3. Bean Config Sets を選択し 右クリックメニューから [Open Graph] を選択し Bean Config Sets における全ての Bean のグラフを開きます Config Sets グラフ画面に Config Sets における全ての Bean の構成および Bean 間の依頼関係が表示されます Spring AOP をグラフィカルに表示する Spring IDE では Spring AOP 機能をサポートします 主に Spring AOP Marker および Beans Cross References ビューという 2 つのサポートを提供しています Spring AOP Marker 機能 AOP Marker は bean 通知が定義された構成ファイルおよびその構成ファイルに対応する クラスを実装するメソッドに表示されます

90 上記の図における赤い四角形で示した部分が AOP Marker です Java コンパイル環境において JDK 準拠レベルの値に 5.0 を指定した場合に AOP Marker が表示されます JDK 6.0 を指定した場合 AOP Marker が表示されません Beans Cross References ビュー Beans Cross References ビューは 主に AOP に関する内容 ( 定義された bean 実装された class ターゲットオブジェクトのメソッド advices など ) を表示します 当該ビューを使用して対応する内容を容易に位置づけることができるため AOP の機能サービスをより良く実現できます [ ウィンドウ ] > [ ビューの表示 ] > [ その他 ] > [Spring] > [Beans Cross References] を選択すると Beans Cross References ビューに移行します

91 Beans Cross References ビューツールバーの のボタンを押すと ビューに関連ノードの内容が表示されます Beans Cross References ビューのツールバーの [View] > [ フィルタ ] から [ 可能なカスタマイズ ] 画面を開き ビューにおけるノード内容のフィルタを行うことができます 詳細を以下に示します 上記画面に示すように [advised by] がチェックされた場合は [advised by] の内容がビューでフィルタリングされます チェック無しのプロジェクトは ビューに表示されます Struts と連携するアプリケーションの作成 この項では Struts と Spring Framework が連携する形態のアプリケーションの作成する場合の開発環境の設定について Studentsearch という例題アプリケーションを使用して説明します

92 プロジェクトの作成 1. Web アプリケーションプロジェクトを新規作成します

93 2. プロジェクト名 Studentsearch を入力します 3. 新規作成された Studentsearch プロジェクトが Project Explorer に表示されます

94 4. Studentsearch プロジェクトを選択した状態で [ 新規 ] > [ その他 ] を選択して [Struts サポートの追加 ] ウィザードを選択します 詳細は [Struts サポート ] ウィザードの操作手順 を参照してください

95 5. Struts サポートの追加後 Studentsearch プロジェクトは以下のような状態になります

96 6. Studentsearch プロジェクトを右クリックしてコンテキストメニューから [Spring Tools] > [Add Spring Project Nature] を選択して Spring プロジェクト ネイチャーを追加します

97 7. Spring プロジェクト ネイチャーの追加後 Studentsearch プロジェクトは以下のような状態になります Web アプリケーションの作成からではなく [Spring Project] として作成したプロジェクトに対して [Struts サポートの追加 ] を行うこともできます 3.5 Spring Framework の運用 保守 起動 停止 Spring Framework は IJServer ワークユニット上で動作します IJServer ワークユニットは Interstage 管理コンソールやコマンドを利用して起動 停止をすることができます IJServer ワークユニットの起動 停止については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください Spring Framework の環境設定については 3.2 Spring Framework の環境作成 を参照してください ログ 本製品の Spring Framework で提供するログ機能に標準ログがあります 標準ログは以下の 2 つから構成されます システムログ Spring Framework の稼働状態を表すインフォメーションや エラー情報が出力されます 性能ログ Spring Framework 内部での実行時間が出力されます システムログおよび性能ログは アプリケーションの開始から終了までにおいて Spring Framework 上の特定の契機でメッセージを出力します メッセージには様々な情報が含まれており これによりボトルネックの早期検出や処理の改善を分析するための情報として利用することができます システムログおよび性能ログの出力契機について以下に記載します

98 図 3.5 システムログの出力契機 図 3.6 性能ログの出力契機 システムログおよび性能ログの詳細については 第 7 章標準ログ を参照してください 複数 IJServer による分離型での運用 Spring Framework では IJServer 間連携機能を利用することによって アプリケーションを Web 層 AP 層に分離して運用することができます Spring Framework で管理する業務アプリケーション間で処理を連携する運用構成図を以下に示します

99 図 3.7 運用形態が基本型の場合 図 3.8 運用形態が分離型の場合 運用形態が分離型の場合 IJServer のプロセス多重度を設定することで Web 層の業務アプリケーションから呼び出される AP 層の業務アプリケーションの処理を分散することが可能になります 運用形態が分離型の場合における IJServer の起動 停止順序を以下に示します ここでは Web 層の IJServer を Web アプリケーションサーバ AP 層の IJServer を 業務アプリケーションサーバ とします

100 図 3.9 [Web アプリケーションサーバおよび業務アプリケーションサーバの起動 停止順序 ] Web アプリケーションサーバおよび業務アプリケーションサーバの各運用操作の詳細は Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください 3.6 注意事項 Spring Framework アプリケーションで JTA を利用する場合の注意事項 Spring Framework アプリケーションで JTA を利用する場合の注意事項について説明します IJServer の作成 Spring Framework アプリケーションで JTA を利用する場合 IJServer タイプを WEB アプリケーションのみ運用 以外で作成する必要があります JTA のトランザクション属性の利用 Spring Framework アプリケーションで JTA を利用する場合 トランザクション属性の一部が利用できません トランザクション属性の利用可否について以下に示します トランザクション属性既存トランザクションなし既存トランザクションあり REQUIRED SUPPORTS MANDATORY REQUIRES_NEW ( 注 1) NOT_SUPPORTED ( 注 1) NEVER NESTED ( 注 2) 注 1 ) 未サポートのため利用できません 利用した場合は Spring org.springframework.transaction.transactionsuspensionnotsupportedexceptionがスローされます Framework が持つ例外 注 2) 未サポートのため利用できません 利用した場合は J2EE 規約の例外 javax.transaction.notsupportedexception がスローされます

101 3.6.2 Spring Framework アプリケーション作成時の注意事項 Spring Framework アプリケーション作成時の注意事項について説明します Bean のライフサイクルについて Spring Framework は定義された Bean をデフォルトで Singleton として管理しています 変更したい場合には Spring Framework が提供している Bean スコープ機能を利用してください Symfoware のエラーコードに対応した例外クラスとのマッピング情報定義ファイルについて クラスパス上に 本製品が提供する Symfoware のエラーコードに対応した例外クラスとのマッピング情報定義ファイル (sql-error-codes.xml) と同名のファイルが存在した場合 Symfoware のエラーコードに対応した例外クラスが正常に返却されない可能性があります 3.7 チューニング OS の設定値など 特にチューニングは必要ありません 3.8 トラブルシューティング アプリケーション配備時の異常 アプリケーション配備時におけるトラブルシューティングに関して特に記載することはありません ワークユニット起動時の異常 アプリケーションの活性化に失敗する 以下の可能性があります ワークユニットの環境設定に誤りがある AOP 機能を利用している場合 必要なモジュールがクラスパス上に存在しない IJServer 間連携機能を利用する場合において ネーミングサービスに IJServer 間連携用の EJB アプリケーションが登録されていない 3.2 Spring Framework の環境作成 および 3.3 Spring Framework アプリケーションの開発 を参照して設定に誤りがないか確認してください アプリケーション実行時の異常 Bean が見つからない 以下の可能性があります アプリケーションに記述した BeanId 名が Bean 定義ファイルに記述されていない アプリケーションに記述した BeanId 名と Bean 定義ファイルに記述した BeanId 名が一致していない ( アルファベットの大文字と小文字は区別されます ) IJServer 間連携機能を利用する場合において BeanId プロパティに指定した値が別の IJServer 上の Bean 定義ファイルに記述した BeanId 名と一致していない ( アルファベットの大文字と小文字は区別されます ) 3.2 Spring Framework の環境作成 および 3.3 Spring Framework アプリケーションの開発 を参照して Bean 定義ファイルへの記述方法に誤りがないか確認してください Bean 定義ファイルがみつからない 以下の可能性があります

102 IJServer 間連携機能を利用する場合において 別の IJServer のクラスパス上に Bean 定義ファイル (applicationcontext.xml) が存在しない IJServer 間連携機能を利用する場合 別の IJServer に用意する業務アプリケーションの Bean 定義ファイル名は applicationcontext.xml である必要があります ( アルファベットの大文字と小文字は区別されます ) IJServer 間連携において 通信に失敗する 以下の可能性があります 対象の IJServer が起動していない 対象の IJServer のタイプが Web アプリケーションと EJB アプリケーションを同一 JavaVM で運用 となっている 対象の IJServer の環境設定に誤りがある 3.2 Spring Framework の環境作成 および 3.3 Spring Framework アプリケーションの開発 を参照して IJServer 間連携の設定に誤りがないか確認してください 実装と異なる結果を返却する 以下の可能性があります 同一名の Bean 定義ファイルがクラスパス上に複数存在している 同一名のアプリケーション実装クラスがクラスパス上に複数存在している クラスパス上に同一名のファイルやクラスが存在した場合 その読み込み順番は IJServer のクラスローダ構成に依存します Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照して資源が正しい場所に格納されているかを確認してください Symfoware のエラーコードに対応した例外クラスが正しく返却されない 以下の可能性があります クラスパス上に本機能が利用するマッピング情報定義ファイル (sql-error-codes.xml) と同一名のファイルが存在している sql-error-codes.xml は Spring Framework が利用する固定名の定義ファイルです エラーコードとのマッピング以外の目的で同一名のファイルを使用することはできません マッピング以外の目的でこのファイル名を利用している場合は ファイル名を変更してください マッピング目的で利用している場合は 内容に誤りがないか確認してください 問題を取り除いたあと IJServer ワークユニットを再起動してください メモリ不足が発生する 以下の可能性があります 大量のリクエストが同時に長時間に渡り送信されており Spring Framework の DI コンテナや AOP 機能を利用するために生成されたインスタンスの回収処理が追いついていない Spring Framework では クラス間の依存性をなくすために DI コンテナがクラスのインスタンスをデフォルト Singleton として管理していますが DI コンテナや AOP 機能など Spring Framework が保持する機能を実現するために必要なインスタンスは Singleton で管理されておらず リクエストのたびに新たにインスタンスが生成されます 大量のリクエストが同時に長時間に渡り送信された場合 新たなインスタンスが生成され続けることによりメモリ不足が発生する可能性があるため 運用に応じて十分なメモリを割り当ててください

103 第 4 章 ibatis 4.1 ibatis の概要 ibatis は リレーショナルデータベースのテーブル構造を Java オブジェクトにマッピングする機能を持った永続性フレームワークです ibatis を利用することで Java オブジェクトとリレーショナルデータベースの構造的な違いによるインピーダンスミスマッチが解消できます また データベースアクセス処理に必要なデータベース接続情報および Java オブジェクトとリレーショナルデータベースのテーブル構造を対応付ける SQL マッピング情報を業務アプリケーションから分離して XML ファイルで管理することができます これにより データベース処理に必要な Java コードを減少させて作成を容易にできます また データベースの接続に変更が生じた場合も Java コードに影響がありません ibatis は以下の流れで処理をします 1. Java オブジェクトとリレーショナルデータベースのテーブル構造の対応付けを XML ファイルに定義する (SQL Map ファイルの作成 ) 2. トランザクションマネージャ データソースファクトリ SQL Map ファイルの指定などデータベース接続情報を XML ファイルに定義する (SQL Map 設定ファイルの作成 ) 3. 業務アプリケーションから ibatis の API を介してデータベースへアクセスする 図 4.1 ibatis の処理の流れ ibatis 2.3.4が提供する機能と 本製品に含まれるiBATISが提供する機能について記載します 機能名 ibatis 本製品で提供するiBATIS O/R マッピング機能 コネクション管理 ( 注 1) ( 注 1) トランザクション管理 ( 注 1) ( 注 1) 一貫したログの出力 ( 注 2) 注 1) 簡易的な管理機能を提供します コネクション管理 トランザクション管理は Spring Frameworkで管理することを推奨します 注 2) Spring FrameworkまたはStrutsと連携した場合のみ利用可能です

104 4.1.1 O/R マッピング オブジェクト指向言語である Java では リレーショナルデータベースを扱う場合 テーブル構造と Java オブジェクトの対応付けが必要となります リレーショナルデータベース設計とオブジェクト指向設計では 設計方法が異なるため この対応付けが煩雑です これをインピーダンスミスマッチといいます インピーダンスミスマッチを解決するためには テーブル構造のデータをオブジェクト構造のデータに対応付けるためのコードを作成する必要があります したがって データ構造が複雑になると 煩雑な作業が多くなりバグを埋め込む危険性が高くなります O/R マッピングは リレーショナルデータベースのテーブル構造を Java オブジェクトに対応付けてインピーダンスミスマッチを解消する機能です ibatis の O/R マッピングは リレーショナルデータベースのテーブル構造と Java オブジェクトを対応付けするために SQL 文とそれに対応する Java クラスの情報を SQL マッピング情報ファイルとして XML ファイルで記述します 業務アプリケーションの実装時 データベース操作にかかわる処理に必要な Java コードを減少させ開発効率を向上させることが可能です また データベース接続情報をデータベース接続ファイルとして XML で記述します これにより 業務アプリケーションからデータベースアクセス処理を分離することができ データベースの変更などの際に修正を局所化できます 図 4.2 インピーダンスミスマッチの例 コネクション管理 データベースのコネクションを ibatis で取得することができます コネクションプーリングなどコネクション管理に関する処理を業務アプリケーションから分離することができます ibatis のコネクション管理方法には SIMPLE DBCP JNDI の 3 つがあります データソースファクトリ特徴備考 SIMPLE DBCP JNDI JDBC2.0 に対応したデータソースのシンプルな実装です 軽量で手軽なコネクションプーリングのソリューションです Jakarta DBCP を使用します JNDI コンテキストからコンテナのデータソースの実装を利用します プロパティファイルにデータベース接続用のユーザ名 パスワードを平文で記述します プロパティファイルにデータベース接続用のユーザ名 パスワードを平文で記述します アプリケーションサーバからコネクションプールが提供されている場合に使用してください Interstage Application Server では パスワードは暗号化されます

105 4.1.3 トランザクション管理 トランザクション管理サービスの設定を ibatis ですることができます JDBC JTA EXTERNAL の 3 つのトランザクションマネージャが ibatis に含まれています トランザクションマネージャ特徴備考 JDBC JTA EXTERNAL デフォルトでは 自動コミットします Connection の commit() と rollback() メソッド経由でトランザクションの制御が可能です JTA グローバルトランザクションを使用します ユーザ自身でトランザクションを管理することが必要です JNDI リソースから usertransaction プロパティセットを必要とします 一貫したログの出力 Interstage Business Application Server では標準ログとして システムログ 性能ログを出力することができます システムログは 業務アプリケーションからの ibatis の呼び出し時と ibatis 復帰時に出力します また ibatis からのリレーショナルデータベース呼び出し時と復帰時にログに出力します 性能ログは 業務アプリケーションからの ibatis の呼び出しから復帰までの時間を ibatis 復帰時に出力します また ibatis からのリレーショナルデータベース呼び出しから復帰までの時間もリレーショナルデータベースからの復帰時に出力します コンテキスト ID を付加してログを出力する事によって 一連のアプリケーションが出力したログを選定する事を可能とし一貫したログ情報を取得できます 本機能の詳細については 第 7 章標準ログ を参照してください 4.2 ibatis の環境作成 ibatis を利用するためには 以下の手順で環境を作成します データベース接続の設定 IJServer の作成 クラスパスの設定 ibatis アプリケーションの配備 データベース接続の設定 データベース接続させるために JDBC データソース定義を登録します 操作は Interstage 管理コンソールを使用して行います [ システム ] > [ リソース ] > [JDBC] > [ 新規作成 ] タブ データベース接続の設定方法などについては Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください IJServer の作成 ibatis アプリケーションを動作させるために必要な IJServer を作成します Interstage 管理コンソールを使用して作成します [ システム ] > [ ワークユニット ] > [ 新規作成 ] タブ IJServer の作成方法については Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください

106 4.2.3 クラスパスの設定 IJServer のクラスパスへ ibatis が動作するために必要な jar ファイルを設定します Interstage 管理コンソールを使用して IJServer ワークユニットで ibatis が動作するために必要な jar ファイルをクラスパスへ設定します [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 環境設定 ] タブ クラスパスの設定方法については Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください 以下の jar ファイルを設定します [Interstageのインストールディレクトリ]\BAS\ibatis23\lib\ibatis23.jar [Interstageのインストールディレクトリ]\BAS\lib\commons-logging jar [Interstageのインストールディレクトリ]\BAS\lib\apfwlogging.jar [Interstageのインストールディレクトリ]\BAS\lib\apfwutils50.jar [Interstageのインストールディレクトリ]\APC\lib\uji.jar [Interstageのインストールディレクトリ]\APC\lib\ujief.jar [Interstageのインストールディレクトリ]\APC\lib\ujilog.jar [Symfoware Server クライアント機能インストールディレクトリ ]\JDBC\fjjdbc\lib\fjsymjdbc2.jar( 注 ) /opt/fjsvibs/ibatis23/lib/ibatis23.jar /opt/fjsvibs/lib/commons-logging jar /opt/fjsvibs/lib/apfwlogging.jar /opt/fjsvibs/lib/apfwutils50.jar /opt/fjsvwebc/lib/uji.jar /opt/fjsvapcef/lib/ujief.jar /opt/fjsvapclg/lib/ujilog.jar [Symfoware Server クライアント機能インストールディレクトリ ]\JDBC\fjjdbc\lib\fjsymjdbc2.jar( 注 ) 注 ) 使用するデータベースに応じて jar を設定してください アプリケーションの配備 作成した IJServer へ ibatis アプリケーションを配備します Interstage 管理コンソールを使用して IJServer ワークユニットへ ibatis アプリケーションファイルを配備します [ システム ] > [ ワークユニット ] > ワークユニット名 > [ 配備 ] タブ アプリケーションの配備の方法については Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド を参照してください 4.3 ibatis アプリケーションの開発 本項では ibatisアプリケーションの開発の手順を説明します ibatisの基本設計 ibatisアプリケーションに必要な設定ファイルの作成

107 ibatis アプリケーションの実行クラスを作成 (Spring Framework と連携しない場合 ) Struts との連携 Spring Framework との連携 Interstage Studio 上で ibatis アプリケーションを作成する場合は Web アプリケーションプロジェクトなどの Java ネイチャーが有効なプロジェクトで作成してください ibatis の基本設計 ibatis アプリケーション作成の前にデータベースの設計を実施してください データベースに登録されたテーブル情報からオブジェクトとしてまとめる要素を決定し オブジェクトを操作するための SQL 文を設計してください ibatis アプリケーションに必要な設定ファイルの作成 ibatis アプリケーションに必要となる下記の設定ファイルを作成します SQL Map 設定ファイル SQL Map ファイル SQL Map 設定ファイル SQL Map ファイルのファイル名は任意ですが applicationcontext.xml や struts-config.xml など他のフレームワークで使用されるファイル名と同じにしないでください 設定ファイルで使用できるタグの詳細については ibatis オリジナルのマニュアルを参照してください SQL Map 設定ファイル SQL Map の大本となる XML 設定ファイルです 設定ファイルの中で JDBC DataSource と SQL Map のプロパティ設定を行います SQL Map 設定ファイルの例を下記に示します <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlmapconfig PUBLIC "-//ibatis.com//dtd SQL Map Config 2.0//EN" " <sqlmapconfig> <transactionmanager type="jdbc"> <datasource type="jndi"> <property name="datasource" value="java:comp/env/jdbc/ibatis_ds"/> </datasource> </transactionmanager>

108 <sqlmap resource="bas_budget_sqlmap.xml" /> </sqlmapconfig> 下記にタグの説明を記載します エレメント 属性 説明 transactionmanager type 使用するトランザクションタイプを設定します datasource type 使用するデータソースタイプを設定します property name プロパティの名前を設定します value プロパティの値を設定します sqlmap resource Sql Mapファイル名を設定します 作成したSQL Map 設定ファイルはアプリケーションと一緒に配備します SQL Map 設定ファイルの雛形は下記に格納してあります サーバパッケージ [Interstage のインストールディレクトリ ]\BAS\ibatis23\sample\SqlMapConfig.xml 開発環境パッケージ [Interstage のインストールディレクトリ ]\BAS\sample\openjava\iBATIS\SqlMapConfig.xml /opt/fjsvibsjf/ibatis23/sample/sqlmapconfig.xml SQL Map ファイル オブジェクトを操作するための SQL 文やオブジェクトへのマッピング情報を記述します SQL Map ファイルの例を下記に示します <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlmap PUBLIC "-//ibatis.apache.org//dtd SQL Map 2.0//EN" " <sqlmap namespace="bas_budget"> <resultmap class="com.fujitsu.interstage.apfw.samples.orm.bas.budget" id="baseresultmap"> <result column="id" jdbctype="decimal" property="id" /> <result column="budget" jdbctype="decimal" property="budget" /> </resultmap>

109 <insert id="insert" parameterclass="com.fujitsu.interstage.apfw.samples.orm.bas.budget"> insert into BAS.BUDGET (ID, BUDGET) values (#id:decimal#, #budget:decimal#) </insert> <update id="update" parameterclass="com.fujitsu.interstage.apfw.samples.orm.bas.budget"> update BAS.BUDGET set BUDGET = #budget:decimal# where ID = #id:decimal# </update> <select id="select" parameterclass="com.fujitsu.interstage.apfw.samples.orm.bas.budget" resultmap="baseresultmap"> select ID, BUDGET from BAS.BUDGET where ID = #id:decimal# </select> <delete id="deletebyprimarykey" parameterclass="com.fujitsu.interstage.apfw.samples.orm.bas.budget"> delete from BAS.BUDGET where ID = #id:decimal# </delete> </sqlmap> 下記にタグの説明を記載します エレメント属性説明 resultmap result insert update select delete class id columun jdbctype property SQL 文の実行によって生成された ResultSet のカラムと Java オブジェクトのプロパティをマッピングします 結果をマッピングするクラスを指定します ステートメントが参照するために使用する識別子を指定します マッピングするデータベースのカラム名を設定します セットするプロパティの java プロパティ型を明示的に指定するために設定します SQL 文によって返された結果をマッピングするオブジェクトのプロパティ名を設定します 挿入処理をするためのステートメントを設定します 更新処理をするためのステートメントを設定します 検索処理をするためのステートメントを設定します 削除処理をするためのステートメントを設定します 作成した SQL Map ファイルはアプリケーションと一緒に配備します SQL Map ファイルの雛形は下記に格納してあります

110 サーバパッケージ [Interstage のインストールディレクトリ ]\BAS\ibatis23\sample\SqlMap.xm 開発環境パッケージ [Interstage のインストールディレクトリ ]\BAS\sample\openjava\iBATIS\SqlMap.xml /opt/fjsvibsjf/ibatis23/sample/sqlmap.xml ibatis アプリケーションの実行クラスの作成 (Spring Framework と連携しない場合 ) SqlMapClient を利用するクラスの作成 IbatisExecutor.java package main; import com.ibatis.common.resources.resources; import com.ibatis.sqlmap.client.sqlmapclient; import com.ibatis.sqlmap.client.sqlmapclientbuilder;... public class IbatisExecutor{ private SqlMapClient sqlmap; public IbatisExecutor(){ try{ // (1) String resource = "sqlmapconfig.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlmap = SqlMapClientBuilder.buildSqlMapClient(reader); } public void insert(budget budget){

111 // (2) sqlmap.insert("bas_budget.ibatorgenerated_insert", budget); (1)SQL Map 設定ファイルの読み込み SQL Map 設定ファイルの読み込みをします この情報を元に SqlMapClient のインスタンスを作成します (2)SQL の実行 SQL Map ファイルで記述した SQL 文を実行します Struts との連携 Struts と ibatis を連携させることにより Struts を利用して構成したアプリケーションにおいても ibatis の機能を利用することが可能になります 連携のために必要な設定はありません SqlMapClient を呼び出すクラスを ActionServlet から呼び出してください Spring Framework との連携 Spring Framework が提供する Dao フレームワークの SqlMapClientDaoSupport を使用します BudgetDAO.java package com.fujitsu.interstage.apfw.samples.dao.bas.; import com.fujitsu.interstage.apfw.samples.orm.bas.budget public interface BudgetDAO { //(1) void insert(budget budget); } (1) メソッド宣言 使用するメソッドを宣言します BudgetDaoImpl.java package com.fujitsu.interstage.apfw.samples.dao.bas; import org.springframework.orm.ibatis.support.sqlmapclientdaosupport; import org.springframework.dao.dataaccessexception; // (1) public class BudgetDaoImpl extends SqlMapClientDaoSupport implements BudgetDao {

112 // (2) public void insert(budget budget) throws DataAccessException { getsqlmapclienttemplate().insert("bas_budget.insert ", budget); } } (1)SqlMapClientDaoSupportを利用した実装クラスの作成 Spring Frameworkが提供するSqlMapClientDaoSupportを継承して実装クラスを作成します (2) メソッドの作成 getsqlmapclienttemplate() を利用してSQL 文を発行するメソッドを作成します Spring Frameworkの設定ファイルで以下のように設定します applicationcontext.xml <beans> <!-- SqlMap setup for ibatis Database Layer --> <!-- (1) --> <bean id="sqlmapclientfact" class="org.springframework.orm.ibatis.sqlmapclientfactorybean"> <property name="configlocation"> <value> sqlmapconfig.xml</value> </property> <property name="datasource"> <ref local="datasource" /> </property> </bean> <!-- (2) --> <bean id="budgetdao" class="com.fujitsu.interstage.apfw.samples.orm.bas.budgetdaoimpl"> <property name="sqlmapclient" ref="sqlmapclientfact"/> </bean> </beans> (1)iBATIS クライアントの登録 SqlMapClientFactoryBean を設定します (2)Dao の実装の登録

113 Dao の実装の sqlmapclient プロパティに (1) で設定した bean を指定します SQL Map 設定ファイルで以下のように設定します sqlmapconfig.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlmapconfig PUBLIC "-//ibatis.com//dtd SQL Map Config 2.0//EN" " <sqlmapconfig> <!-- (1) --> <sqlmap resource="bas_budget_sqlmap.xml" /> </sqlmapconfig> (1)Sql Map ファイルの設定 Sql Map ファイルを設定します 4.4 ibatis の運用 保守 起動 停止 ibatis は IJServer ワークユニット上で動作します IJServer ワークユニットは Interstage 管理コンソールやコマンドを利用して起動 停止をすることができます IJServer ワークユニットの起動 停止については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください ibatis の環境設定については 4.2 ibatis の環境作成 を参照してください ログ 本製品の ibatis で提供するログ機能に標準ログがあります 標準ログは以下の 2 つから構成されます システムログ ibatis の稼働状態を表すインフォメーションや エラー情報が出力されます 性能ログ ibatis 内部での実行時間が出力されます システムログおよび性能ログは アプリケーションの開始から終了までにおいて Spring Framework 上の特定の契機でメッセージを出力します メッセージには様々な情報が含まれており これによりボトルネックの早期検出や処理の改善を分析するための情報として利用することができます システムログおよび性能ログの出力契機について以下に記載します

114 図 4.3 システムログの出力契機 図 4.4 性能ログの出力契機 4.5 注意事項 データベース固有の注意点 Symfoware V9.1 以前のバージョンでは以下の機能制限があります 項番制限事項対処方法解除予定 1 SQL マップ設定ファイルの <settings> エレメントの defaultstatementtimeout は未サポートです 2 SQL マップファイルのステートメントエレメントの fetchsize 属性は未サポートです 3 SQL マップファイルのステートメントエレメントの timeout 属性は未サポートです ありません 実行時にエラーになります ありません 実行時にエラーになります ありません 実行時にエラーになります 4 バッチ処理は利用できません ありません 実行時にエラーになりま す 5 ibatis のキーの自動生成機能は利用できません手動でキーを設定してください 未定 6 SQL の COUNT 関数を利用する場合は AS 演算子を使用してください ありません AS 演算子を使用しない場合 実行時にエラーになります Symfoware V10 Symfoware V10 Symfoware V10 Symfoware V10 未定

115 4.6 チューニング OS の設定値など 特にチューニングは必要ありません 4.7 トラブルシューティング アプリケーション実行時の異常 アプリケーションの実行時に 指定されたメソッドは当ドライバではサポートされていません が出力される SymfowareV9.2を使用している場合 "4.5.1 データベース固有の注意点 " を参照してください

116 第 5 章 TERASOLUNA 5.1 TERASOLUNAの概要 TERASOLUNAフレームワークは Spring Frameworkをベースにして機能拡張を行ったフレームワークです ここでは TERASOLUNAの概要を説明します 提供機能 図 5.1 フレームワークの組み合わせモデル TERASOLUNA フレームワーク TERASOLUNA フレームワーク ラインナップのうち 次の Java フレームワークを提供します Java フレームワーク TERASOLUNA Server Framework for Java (Web 版 ) TERASOLUNA Server Framework for Java (Rich 版 ) TERASOLUNA Batch Framework for Java TERASOLUNA Server Framework for Java (Web 版 ) Web アプリケーション開発に必要な機能を備えた汎用フレームワークです Spring Framework をベースとしています 以降 TERASOLUNA-Web と表記します バージョン TERASOLUNA Server Framework for Java (Rich 版 ) リッチクライアントアプリケーション開発に必要な機能を備えた汎用フレームワークです Spring Framework をベースとしています 以降 TERASOLUNA-Rich と表記します TERASOLUNA Batch Framework for Java Java によるバッチアプリケーション開発を実現するためのフレームワークです バッチアプリケーションでは 限られたリソースでの大量データの処理や バッチ処理特有のトランザクション管理が求められます これらバッチアプリケーション特有の要件をフレームワークでサポートすることで システムの品質向上 開発の効率化を実現します 以降 TERASOLUNA-Batch と表記します TERASOLUNA-Batch では 次のジョブ実行をサポートしています - IJServer 上での非同期バッチデーモンを使用しない非同期ジョブ - IJServer 上での非同期バッチデーモンを使用した非同期ジョブ 以降 上記の Java フレームワークを TERASOLUNA フレームワークと表記します また TERASOLUNA フレームワークを使用して開発 運用するアプリケーションを TERASOLUNA アプリケーションと表記します

117 本製品に含まれる TERASOLUNA フレームワークでは 以下の機能もサポートします Symfoware をサポートします TERASOLUNA Batch Framework for Java と本製品に含まれる TERASOLUNA Batch Framework for Java が提供する機能について記載します 機能名 TERASOLUNA Batch Framework for Java スタンドアロンでのジョブ実行 アプリケーションサーバ上でのジョブ実行 同一 Java VM 上での非同期バッチデーモンの複数起動 本製品で提供する TERASOLUNA Batch Framework for Java TERASOLUNA Server Framework for Java (Web 版 )/TERASOLUNA Server Framework for Java (Rich 版 ) において 提供機能に関する差分はありません ブランクプロジェクトとサンプルプロジェクト 次のプロジェクトを提供します これらのプロジェクトをインポートすることで TERASOLUNA アプリケーションの開発環境を構築することができます ブランクプロジェクト TERASOLUNA アプリケーション開発環境を構築するためのものです ブランクプロジェクトの使用方法は 5.3 TERASOLUNA の開発 を参照してください サンプルプロジェクト TERASOLUNA アプリケーションのサンプルです サンプルプロジェクトの使用方法は 付録 A TERASOLUNA のサンプルアプリケーション を参照してください システムモデル 次のシステムモデルをサポートします オンラインモデルオンラインモデルとは TERASOLUNA Server Framework for Java を使用し Web ブラウザまたはリッチクライアントからのリクエスト要求を処理するモデルです

118 バッチモデルバッチモデルとは TERASOLUNA Batch Framework for Java を使用し バッチ処理を行うモデルです オンバッチ連携モデルオンバッチ連携モデルとは オンラインモデルとバッチモデルが連携し Web ブラウザまたはリッチクライアントから受け付けたリクエスト要求の延長上で バッチ処理を行うモデルです スレッド制御などのパフォーマンスを考慮すると オンラインモデルとバッチモデルを異なるワークユニット上で構築したうえで連携することを推奨します 5.2 TERASOLUNA の環境作成 次の手順で TERASOLUNAアプリケーションの動作に必要な環境を作成します IJServerの作成 ( 共通 ) クラスパスの設定 ( 共通 )

119 ワークマネージャの設定 (TERASOLUNA-Batch のみ ) TERASOLUNA フレームワークが出力するログの設定 ( 共通 ) IJServer の作成 TERASOLUNA アプリケーションを動作させるために必要な IJServer を作成します IJServer の作成 Interstage 管理コンソールを使用して IJServer ワークユニットを作成します [ システム ] > [ ワークユニット ] > [ 新規作成 ] タブ クラスパスの設定 IJServer のクラスパスへ TERASOLUNA が動作するために必要な jar ファイルを設定します クラスパスの設定 Interstage 管理コンソールを使用して IJServer ワークユニットで TERASOLUNA が動作するために必要な jar ファイルをクラスパスへ設定します [ システム ] > [ ワークユニット ] > " ワークユニット名 " > [ 環境設定 ] タブ 以下の jar ファイルを設定します 共通 すべての TERASOLUNA フレームワークで必要なクラスパスを 以下に示します [Interstage のインストールディレクトリ ]\APC\lib\uji.jar [Interstage のインストールディレクトリ ]\APC\lib\ujief.jar [Interstage のインストールディレクトリ ]\APC\lib\ujilog.jar [Interstage のインストールディレクトリ ]\BAS\lib\apfwlogging.jar [Interstage のインストールディレクトリ ]\BAS\lib\apfwutils50.jar [Interstage のインストールディレクトリ ]\BAS\lib\cglib-nodep-2.1_3.jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-beanutils jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-dbcp jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-digester jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-jxpath-1.3.jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-lang-2.4.jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-logging jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-pool-1.4.jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-validator jar [Interstage のインストールディレクトリ ]\BAS\lib\jakarta-oro jar [Interstage のインストールディレクトリ ]\BAS\ibatis23\lib\ibatis23.jar [Interstage のインストールディレクトリ ]\BAS\spring25\lib\spring25.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-commons.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-dao.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-ibatis.jar [Interstage のインストールディレクトリ ] BAS etc def log_inf ( 使用するデータベースの JDBC ドライバの jar)

120 /opt/fjsvwebc/lib/uji.jar /opt/fjsvapcef/lib/ujief.jar /opt/fjsvapclg/lib/ujilog.jar /opt/fjsvibs/lib/apfwlogging.jar /opt/fjsvibs/lib/apfwutils50.jar /opt/fjsvibs/lib/cglib-nodep-2.1_3.jar /opt/fjsvibs/lib/commons-beanutils jar /opt/fjsvibs/lib/commons-dbcp jar /opt/fjsvibs/lib/commons-digester jar /opt/fjsvibs/lib/commons-jxpath-1.3.jar /opt/fjsvibs/lib/commons-lang-2.4.jar /opt/fjsvibs/lib/commons-logging jar /opt/fjsvibs/lib/commons-pool-1.4.jar /opt/fjsvibs/lib/commons-validator jar /opt/fjsvibs/lib/jakarta-oro jar /opt/fjsvibs/ibatis23/lib/ibatis23.jar /opt/fjsvibs/spring25/lib/spring25.jar /opt/fjsvibs/terasoluna/lib/terasoluna-commons.jar /opt/fjsvibs/terasoluna/lib/terasoluna-dao.jar /opt/fjsvibs/terasoluna/lib/terasoluna-ibatis.jar /opt/fjsvibs/etc/def/log_inf ( 使用するデータベースの JDBC ドライバの jar) TERASOLUNA-Web の場合 共通のクラスパスに加えて 以下の jar ファイルをクラスパスに追加します [Interstage のインストールディレクトリ ]\BAS\lib\antlr jar [Interstage のインストールディレクトリ ]\BAS\lib\aspectjweaver.jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-fileupload jar [Interstage のインストールディレクトリ ]\BAS\spring25\lib\spring-webmvc-struts25.jar [Interstage のインストールディレクトリ ]\BAS\struts12\lib\struts12.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-thin.jar /opt/fjsvibs/lib/antlr jar /opt/fjsvibs/lib/aspectjweaver.jar /opt/fjsvibs/lib/commons-fileupload jar /opt/fjsvibs/spring25/lib/spring-webmvc-struts25.jar /opt/fjsvibs/struts12/lib/struts12.jar /opt/fjsvibs/terasoluna/lib/terasoluna-thin.jar TERASOLUNA-Rich の場合 共通のクラスパスに加えて 以下の jar ファイルをクラスパスに追加します [Interstage のインストールディレクトリ ]\BAS\lib\aspectjweaver.jar [Interstage のインストールディレクトリ ]\BAS\lib\castor jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-collections jar [Interstage のインストールディレクトリ ]\BAS\lib\commons-fileupload jar [Interstage のインストールディレクトリ ]\BAS\lib\jaxrpc.jar

121 [Interstage のインストールディレクトリ ]\BAS\lib\spring-modules-validation-0.8.jar [Interstage のインストールディレクトリ ]\BAS\lib\velocity jar [Interstage のインストールディレクトリ ]\BAS\lib\velocity-tools-generic-1.4.jar [Interstage のインストールディレクトリ ]\BAS\lib\velocity-tools-view-1.4.jar [Interstage のインストールディレクトリ ]\BAS\lib\xercesImpl jar [Interstage のインストールディレクトリ ]\BAS\spring25\lib\spring-webmvc25.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-oxm.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-rich.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-validator.jar /opt/fjsvibs/lib/aspectjweaver.jar /opt/fjsvibs/lib/castor jar /opt/fjsvibs/lib/commons-collections jar /opt/fjsvibs/lib/commons-fileupload jar /opt/fjsvibs/lib/jaxrpc.jar /opt/fjsvibs/lib/spring-modules-validation-0.8.jar /opt/fjsvibs/lib/velocity jar /opt/fjsvibs/lib/velocity-tools-generic-1.4.jar /opt/fjsvibs/lib/velocity-tools-view-1.4.jar /opt/fjsvibs/lib/xercesimpl jar /opt/fjsvibs/spring25/lib/spring-webmvc25.jar /opt/fjsvibs/terasoluna/lib/terasoluna-oxm.jar /opt/fjsvibs/terasoluna/lib/terasoluna-rich.jar /opt/fjsvibs/terasoluna/lib/terasoluna-validator.jar TERASOLUNA-Batch の場合 共通のクラスパスに加えて 以下の jar ファイルをクラスパスに追加します [Interstage のインストールディレクトリ ]\BAS\lib\commons-collections jar [Interstage のインストールディレクトリ ]\BAS\lib\spring-modules-validation-0.8.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-batch-core.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-filedao.jar [Interstage のインストールディレクトリ ]\BAS\terasoluna\lib\terasoluna-validator.jar [Interstage のインストールディレクトリ ]\J2EE\lib\commonj\commonj-twm.jar [Interstage のインストールディレクトリ ]\J2EE\lib\commonj\iswmimpl.jar /opt/fjsvibs/lib/commons-collections jar /opt/fjsvibs/lib/spring-modules-validation-0.8.jar /opt/fjsvibs/terasoluna/lib/terasoluna-batch-core.jar /opt/fjsvibs/terasoluna/lib/terasoluna-filedao.jar /opt/fjsvibs/terasoluna/lib/terasoluna-validator.jar /opt/fjsvj2ee/lib/commonj/commonj-twm.jar /opt/fjsvj2ee/lib/commonj/iswmimpl.jar ワークマネージャの設定 (TERASOLUNA-Batch のみ ) ワークマネージャがプーリングするスレッド数のチューニングが必要な場合があります 詳細は TERASOLUNA Batch Framework for Java のチューニング を参照してください

122 5.2.4 TERASOLUNA フレームワークが出力するログの設定 TERASOLUNA フレームワークが出力するログと TERASOLUNA アプリケーションが出力するログの定義は それぞれ異なる定義でログを出力します TERASOLUNA フレームワークが出力するログオープン Java フレームワーク共通のログ設定に従って ログ出力を行います TERASOLUNA フレームワークが出力するログについては 第 7 章標準ログ を参照してください TERASOLUNA アプリケーションが出力するログ TERASOLUNA アプリケーションの開発時にログ定義を行います なお ブランクプロジェクトおよびサンプルプロジェクトでは commons-logging を使ってログ出力を行います 詳細は TERASOLUNA アプリケーションが出力するログの設定 を参照してください なお TERASOLUNA フレームワークと TERASOLUNA アプリケーションとで同じ種類のログ実装クラスを指定することで 同一のログに出力することができます 詳細については 第 6 章オープン Java フレームワークにおけるログ機能の利用 を参照してください 5.3 TERASOLUNA の開発 TERASOLUNA アプリケーションの開発の手順を 以下に示します プロジェクトのインポート ファイルパスの修正 データベースの設定 TERASOLUNA アプリケーションが出力するログの設定 アプリケーションの開発 ワークマネージャのスレッドプールサイズの調整 (TERASOLUNA-Batch) 配備アプリケーションの変更手順 デバッグ方法 TERASOLUNA アプリケーションの開発方法の詳細は TERASOLUNA のマニュアル ( を参照してください ここでは Interstage 固有の作業手順を説明します ブランクプロジェクトのインポート Interstage Studio に TERASOLUNA アプリケーションの開発用のブランクプロジェクトをインポートします 1. Interstage Studio のメニューバーから [ ファイル ] > [ インポート ] を実行し [ インポート ] の画面を表示します 2. [ 選択 ] の画面で [ 一般 ] > [ 既存プロジェクトをワークスペースへ ] を選択し [ 次へ ] を実行します 3. [ プロジェクトのインポート ] の画面で [ アーカイブファイルの選択 ] を選択します 4. [ 参照 ] を実行し ブランクプロジェクトの zip ファイルを指定します 5. [ プロジェクト ] に選択したブランクプロジェクト名 (ISTerasolunaWebBlank/ISTerasolunaRichBlank/ISTerasolunaBatchBlank) が表示されます 6. [ 終了 ] をクリックします ブランクプロジェクトは Interstage Business Application Server の開発環境パッケージに同梱されています <Interstage インストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaBatchBlank.zip <Interstage インストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaRichBlank.zip <Interstage インストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaWebBlank.zip

123 5.3.2 ファイルパスの修正 Java のビルドパスの修正 ブランクプロジェクトでは Interstage を C:\Interstage にインストールされたものとして あらかじめ Java のビルドパスを設定してあります Interstage を C:\Interstage 以外のディレクトリにインストールした場合は Java のビルドバスを修正してください ワークマネージャのバインディングファイルのパスの修正 (TERASOLUNA-Batch) ブランクプロジェクトでは Interstage を C:\Interstage にインストールされたものとして あらかじめワークマネージャのバインディングファイルのパスを設定してあります Interstage を C:\Interstage 以外のディレクトリにインストールした場合は バインディングファイルのパスを修正します 修正するファイルを 次に示します common\defaultvaluebean.xml common\workmanagercontext.xml 次の赤字の部分を Interstage をインストールしたディレクトリに修正します <bean id="jnditemplateforworkmanager" class="org.springframework.jndi.jnditemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial">com.fujitsu.interstage.j2ee.util.work.reffscontextfactorywrapper</ prop> <prop key="java.naming.provider.url">file:///c:/interstage/bas/terasoluna/var/commonj</prop> </props> </property> </bean> 次の赤字の部分になるように 修正します <bean id="jnditemplateforworkmanager" class="org.springframework.jndi.jnditemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial">com.fujitsu.interstage.j2ee.util.work.reffscontextfactorywrapper</ prop> <prop key="java.naming.provider.url">file:/opt/fjsvibs/var/terasoluna/commonj/</prop> </props> </property> </bean> データベースの設定 データベースの設定については 使用するデータベース製品のマニュアルを参照してください ここでは TERASOLUNA フレームワークおよび TERASOLUNA アプリケーションが使用するデータベースの設定について 全体的な流れおよび Interstage 固有の作業手順を説明します TERASOLUNA フレームワークが使用するデータベース (TERASOLUNA-Batch) TERASOLUNA-Batch では TERASOLUNA フレームワークはデータベースを使用しジョブを管理します 次の手順で データベースの設定を行います 1. データベースの選択

124 2. データベースとテーブルの作成 3. 定義ファイルの編集 4. JDBC データソースの作成 データベースの選択 セーブポイント の機能を使用する場合は Symfoware 以外のデータベースを使用します Symfoware で バッチ更新 の機能を使用する場合は Symfoware V10 以降を使用します データベースとテーブルの作成 データベース スキーマなどを作成し 次のテーブルを作成します ジョブ管理テーブル ジョブ結果テーブル リスタート管理テーブル ブランクプロジェクトに テーブルを作成する SQL ファイルのサンプルがあります 下表に示すサンプルを参考にして テーブルを作成します データベースの種類テーブル作成用 SQL ファイルテーブル削除用 SQL ファイル Symfoware /sql/symfo/create.sql /sql/symfo/drop.sql Oracle /sql/oracle/create.sql /sql/oracle/drop.sql 定義ファイルの編集 次のファイルを編集して JDBC データソースの JNDI 名を設定します /batchapps/common/dataaccesscontext-batch.xml ファイルの datasource の Bean 定義 > jndiname プロパティ JDBC データソースの作成 Interstage 管理コンソールを使用して JDBC データソースを作成します なお ここで設定する JDBC データソースの定義名には 前述の /batchapps/common/dataaccesscontext-batch.xml に設定した JDBC データソースの JNDI 名を指定します また JDBC データソースが使用する JDBC ドライバの jar を Interstage Application Server のシステムのクラスパスに追加します TERASOLUNA アプリケーションが使用するデータベース ( 共通 ) TERASOLUNA アプリケーションがデータベースを使用する場合は データベースを作成します 次の手順で データベースの設定を行います 1. データベースの選択 2. データベースとテーブルの作成 3. 定義ファイルの編集 4. JDBC データソースの作成 データベースの選択 セーブポイント の機能を使用する場合は Symfoware 以外のデータベースを使用します Symfoware で バッチ更新 の機能を使用する場合は Symfoware V10 以降を使用します

125 データベースとテーブルの作成 データベース スキーマおよび テーブルなどを作成します 定義ファイルの編集 必要に応じて 使用するデータベースに合わせて 定義ファイルを修正します TERASOLUNA-Web /ContextRoot/META-INF/context.xml を修正する /ContextRoot/META-INF/applicationContext.xml を修正する TERASOLUNA-Rich /ContextRoot/META-INF/context.xml を修正する /ContextRoot/META-INF/dataAccessContext-local.xml を修正する TERASOLUNA-Batch /batchapps/common/dataaccesscontext-batch.xml を修正する データベースおよびテーブルごとに 独自の sqlmapconfig.xml および sqlmap.xml を新規作成し その sqlmapconfig.xml を参照するように ジョブ定義ファイルを修正する JDBC データソースの作成 JNDI 経由でデータベースにアクセスする場合は JDBC データソースの作成が必要です JDBC データソースの設定は Interstage 管理コンソールで行います また JDBC データソースが使用する JDBC ドライバの jar を Interstage Application Server のシステムのクラスパスに追加します TERASOLUNA アプリケーションが出力するログの設定 TERASOLUNA フレームワークが出力するログと TERASOLUNA アプリケーションが出力するログの定義は それぞれ異なる定義でログを出力します ブランクプロジェクトでは commons-logging を使用してログ出力を行います Jakarta Commons Logging の設定を変更するには 次の設定ファイルを編集します /src/commons-logging.properties TERASOLUNA フレームワークが出力するログの設定方法は TERASOLUNA フレームワークが出力するログの設定 を参照してください アプリケーションの開発 ここでは 開発の概要を説明します TERASOLUNA アプリケーションの主な開発項目としては 以下があります ビジネスロジックの作成 ( 共通 ) クライアントに返却するデータ ( プレゼンテーション層 ) の作成 (TERASOLUNA-Web/TERASOLUNA-Rich) 各種定義ファイルの作成 編集 TERASOLUNA アプリケーションの開発方法の詳細は TERASOLUNA のドキュメントを参照してください

126 ビジネスロジックなどのJavaプログラムの開発 ( 共通 ) TERASOLUNAアプリケーションの開発は ビジネスロジックの定義が主な開発となります ビジネスロジックの開発方法には 次の方法があります TERASOLUNA-Web BLogicインタフェースを実装したビジネスロジックを作成する POJOのビジネスロジックおよび AbstractBLogicActionクラスの派生クラスを作成する TERASOLUNA-Rich BLogicインタフェースを実装したビジネスロジックを作成する POJOのビジネスロジックおよび TerasolunaControllerの派生クラスを作成する TERASOLUNA-Batch BLogicインタフェースを実装したビジネスロジックを作成する 定義ファイルの編集 定義ファイルを編集して ビジネスロジックの実行方法を含めた TERASOLUNA アプリケーションのカスタマイズを行います 定義ファイルの詳細は TERASOLUNA のドキュメントを参照してください 非同期ジョブの起動処理の組み込み (TERASOLUNA-Batch) Servlet や EJB などから非同期ジョブを起動する方法の例を 以下に示します なお 下記例は サンプルプロジェクトで実装しています import jp.terasoluna.fw.batch.commonj.init.jobstarterimpl; import org.springframework.context.configurableapplicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; : : //JobStarterImpl のインスタンスを生成する String[] xmlpaths = new String[]{"common/WorkManagerContext.xml", "common/dataaccesscontext-batch.xml"}; ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(xmlPaths); JobStarterImpl starter = (JobStarterImpl)context.getBean("jobStarter"); // 非同期ジョブを実行する String jobid =...; // ジョブのID String beanfilename =...; // ジョブBean 定義ファイル名 String[] args =...; // ジョブのパラメーター int ret = starter.execute(jobid, beanfilename, args); なお 非同期バッチデーモンを起動する場合は ジョブ Bean 定義ファイル名として common/ AsyncBatchDaemonForCommonjBean.xml を指定します ワークマネージャのスレッドプールサイズの調整 (TERASOLUNA-Batch) TERASOLUNA-Batch では 実際に生成されるスレッド数に応じて ワークマネージャのスレッドプールサイズを調整する必要があります 詳細は 5.6 チューニング を参照してください また ブランクプロジェクトの Bean 定義ファイルでは Interstage のワークマネージャへの対応を行っています

127 5.3.7 配備アプリケーションの変更手順 配備済みのアプリケーションを変更する場合の手順を以下に示します 1. 修正したいアプリケーションのプロジェクトを開発環境で開き 修正を行います 2. 修正を行ったプロジェクトのコンパイル ビルドを実施後 アプリケーションを再配備します デバッグ方法 TERASOLUNA アプリケーションをデバッグするには 以下の方法があります アプリケーションサーバに配備せず TERASOLUNA アプリケーションを単体実行する Interstage Studio や Interstage Application Server を利用してデバッグを実行する Interstage Studio の詳細については Interstage Studio ユーザーズガイド を参照してください Interstage Application Server の詳細については Interstage Application Server J2EE ユーザーズガイド Interstage Application Server チューニングガイド Interstage Application Server トラブルシューティング集 などのマニュアルを参照してください 5.4 TERASOLUNA の運用 保守 起動 停止 TERASOLUNA アプリケーションは IJServer ワークユニット上で動作します IJServer ワークユニットは Interstage 管理コンソールを利用して起動 停止をすることができます IJServer ワークユニットの起動 停止については Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド を参照してください TERASOLUNA の環境設定については 5.2 TERASOLUNA の環境作成 を参照してください ログ TERASOLUNA アプリケーションが出力するログと TERASOLUNA フレームワークが出力するログの 2 種類があります TERASOLUNA フレームワークが出力するログは TERASOLUNA フレームワークが出力するログの設定 を参照してください TERASOLUNA アプリケーションが出力するログは TERASOLUNA アプリケーションが出力するログの設定 を参照してください 異常発生時の対処 ログを参照することにより 異常発生の有無を確認することができます ログにメッセージやスタックトレースが出力されていれば メッセージ集 および トラブルシューティング集 を参照して 異常発生の原因を取り除きます 5.5 注意事項 共通の注意事項 Symfoware を使用するにあたっての注意事項として データベース固有の注意点 を参照してください TERASOLUNA Batch Framework for Java 使用時の注意事項 同一 IJServer 内で 複数個の非同期バッチデーモンを起動しないでください 複数個の非同期バッチデーモンを起動したい場合は 複数個の IJServer を用意してください また バッチデーモンごとに 異なるジョブ管理テーブル ジョブ結果テーブル リスタート管理テーブルを使用してください

128 TERASOLUNA-Batch を使用する場合は アプリケーション安定稼動機能を使用することはできません 5.6 チューニング TERASOLUNA Batch Framework for Java のチューニング TERASOLUNA Batch Framework for Java では システム構成に合わせて非同期ジョブを実行するスレッド数をチューニングします そのチューニング結果として生成されるスレッド数が ワークマネージャのスレッドプールサイズを超える場合 TERASOLUNA フレームワークがフリーズし ジョブが終了しなくなる場合があります 生成するスレッド数の計算 同一の非同期バッチデーモンで複数のジョブを実行する場合 同一のワークマネージャ内でスレッドを生成します そのイメージを 下図に示します ワークマネージャのスレッドプール内で生成するスレッドは 次の計算式で算出できます 生成スレッド数 = 同時に実行するジョブの個数 非同期ジョブの multiplicity 2 ( なお 通常ジョブの場合 multiplicity は 1 とみなして計算します ) Java VM がハングアップしたときのワークマネージャの状況 mulitiplicity が 3 の非同期ジョブを 4 個同時に実行した場合 生成するスレッド数は 前述の計算式により 24 個です そのとき ワークマネージャのスレッドプールサイズが 12 の場合 下図に示す状態になる場合があります

129 上図は スレッドプールサイズが 12 しかないのに 対象データを取得するスレッド 12 個がすでにプーリングされていて これ以上新しいスレッドを生成できない状態です そのため BLogic を実行するスレッドを起動することができず BLogic を実行することができません その結果 対象データを取得するスレッドが永遠に BLogic の実行が終わるのを待ち続けることになり ジョブがいつまでも終了しなくなります そうならないようにするための対処方法には 次があります 1) 非同期バッチデーモンで同時に実行するジョブ数を調整する 2) 非同期バッチデーモンを使用しないジョブを実行する 3) 分割ジョブでなく通常ジョブを実行する 4) 分割ジョブの muitiplicity を減らす 5) ワークマネージャのスレッドプールサイズを調整する 1) 2) については 非同期バッチデーモンが同時に実行するジョブを減らすようにプログラムを見直してください 3)~4) については 当該ジョブのジョブ Bean 定義ファイルの設定を見直してください 5) については 次で説明します ワークマネージャのスレッドプールサイズの調整 ワークマネージャのスレッドプールサイズを調整する場合は 下記ファイルを修正し スレッドプールサイズを変更します OS ファイルの所在修正箇所 Windows Solaris/Linux [Interstage のインストールディレクトリ ] \BAS \terasoluna\var\commonj\.bindings /opt/fjsvibs/var/terasoluna/commonj/ java:comp/env/wm/.bindings java\:comp/env/wm/default/refaddr/0/content=< スレッドプールサイズ > default/refaddr/0/content=< スレッドプールサイズ >

130 スレッドプールサイズ : ワークマネージャで使用されるスレッドプールサイズです 1~100 の値で指定することができます 初期値は 10 です 5.7 トラブルシューティング TERASOLUNA Batch Framework for Java のトラブルシューティング TERASOLUNA Batch Framework for Java では 以下の現象が発生する可能性があります ジョブが終了しないジョブ Bean 定義ファイルの記述を誤ると フレームワーク側で NullPointerException が発生し 当該ジョブが終了しない場合があります NullPointerException の発生有無は ログで確認してください Java VM がハングアップする対象データを取得するスレッドの個数が ワークマネージャのスレッドプールサイズ以上になると ビジネスロジックを実行することができなくなり TERASOLUNA フレームワークがフリーズします 詳細は 5.6 チューニング を参照してください

131 第 6 章オープン Java フレームワークにおけるログ機能の利用 6.1 commons-logging API 仕様に準拠したログ機能 commons-logging API 仕様に準拠したログ機能の概要 オープン Java フレームワーク機能では Interstage Business Application Server が提供しているログ機能を使用するための commonslogging の API 仕様に準拠したログクラスである ApfwLogger を提供します これによって 開発時にはアプリケーションが出力するログに関しては commons-logging の API で実装しておき アプリケーション固有の業務処理を先に実装することができます 実行時に動作するログ出力クラスへ ApfwLogger を指定し 読み込むログ定義ファイルのパスを指定することによって アプリケーションを変更することなく指定したログ定義ファイルの定義内容に従ってログを出力することが可能になります commons-logging API 仕様に準拠したログ機能の環境作成 commons-logging の API 仕様に準拠してログ機能を利用する場合には 以下の手順で環境を作成します ログ実装クラスの設定 commons-logging では 実際に動作するログ実装クラスを指定する必要があります ログ実装クラスの設定 配備するアプリケーションのルートディレクトリへ以下のプロパティファイルを格納します commons-logging.properties commons-logging.properties の記述内容 commons-logging.properties にはログ実装クラスを記述します org.apache.commons.logging.log=com.fujitsu.interstage.apfw.logging.apfwlogger ログ定義ファイルの指定 配備するアプリケーションのルートディレクトリへ以下のプロパティファイルを格納します apfwlog.properties apfwlog.properties の記述内容 apfwlog.properties にはログ定義ファイルのパス サブシステム名を記述します 指定したサブシステム名は性能ログの出力時に有効となります apfwlog.config=c:\\temp\\logconf.xml apfwlog.subsystemid=asystem apfwlog.config=/home/logconf.xml apfwlog.subsystemid=asystem Java のプロパティファイルの仕様に準拠します

132 サブシステム名は半角英数字 7 文字以内で設定します上記のプロパティファイルを含めてアプリケーションを作成します アプリケーションの配備 IJServerを作成し アプリケーションを配備します アプリケーションの配備操作 Interstage 管理コンソールを使用して IJServerワークユニットへアプリケーションを配備します [ システム ] > [ ワークユニット ] > " ワークユニット名 " > [ 配備 ] タブ クラスパスの設定 IJServer のクラスパスへログ機能が動作するために必要な jar ファイルを設定します クラスパスの設定 Interstage 管理コンソールを使用して IJServer ワークユニットでログ機能が動作するために必要な jar ファイルをクラスパスへ設定します [ システム ] > [ ワークユニット ] > " ワークユニット名 " > [ 環境設定 ] タブ 以下の jar ファイルを設定します [Interstageのインストールディレクトリ]\BAS\lib\commons-logging jar [Interstageのインストールディレクトリ]\BAS\lib\apfwlogging.jar [Interstageのインストールディレクトリ]\BAS\lib\apfwutils50.jar [Interstageのインストールディレクトリ]\APC\lib\uji.jar [Interstageのインストールディレクトリ]\APC\lib\ujief.jar [Interstageのインストールディレクトリ]\APC\lib\ujilog.jar /opt/fjsvibs/lib/commons-logging jar /opt/fjsvibs/lib/apfwlogging.jar /opt/fjsvibs/lib/apfwutils50.jar /opt/fjsvwebc/lib/uji.jar /opt/fjsvapcef/lib/ujief.jar /opt/fjsvapclg/lib/ujilog.jar 高信頼性ログ利用時の環境設定 オープン Java フレームワーク上で動作するユーザアプリケーションで commons-logging API を介して高信頼性ログを利用する場合は IJServer の環境設定に以下を追加します [Interstage Business Application Server に同梱している Symfoware/RDB または Symfoware Server を利用する場合 ] クラスパス [JDBC ドライバのインストールディレクトリ ]\fjjdbc\lib\fjsymjdbc2.jar

133 ライブラリパス [Symfowareのインストールディレクトリ]\ESQL\LIB [JDBCドライバのインストールディレクトリ]\fjjdbc\bin 環境変数 RDBNAME=[RDBシステム名 ] クラスパス [JDBCドライバのインストールディレクトリ]/fjjdbc/lib/fjsymjdbc2.jar ライブラリパス [Symfowareのインストールディレクトリ]/lib [ICONVのインストールディレクトリ]/lib または /etc/opt/fsuniconv/lib [JDBCドライバのインストールディレクトリ]/fjjdbc/bin 環境変数 RDBNAME=[RDBシステム名 ] クラスパス [JDBCドライバのインストールディレクトリ]/fjjdbc/lib/fjsymjdbc2.jar ライブラリパス [Symfowareのインストールディレクトリ]/lib [JDBCドライバのインストールディレクトリ]/fjjdbc/bin 環境変数 RDBNAME=[RDBシステム名 ] オープン Java フレームワークのランタイムで利用するログ実装クラスの設定 Struts/Spring Framework/iBATIS のオープン Java フレームワークのランタイムでは commons-logging を利用してログを出力しています ランタイムは以下の優先順位でログ実装クラスを使用しています (1) ワークユニット設定のクラスパスに Log4J が存在する場合 Log4J (2) JDK ロギング (3) SimpleLog 上記の設定を変更する場合 commons-logging の仕様にしたがってログ実装クラスを指定する必要があります オープン Java フレームワークのランタイムで利用するログ実装クラスの設定 ワークユニット設定のクラスパスへ以下のディレクトリを指定します [Interstage のインストールディレクトリ ]\BAS\etc\def\log_inf /opt/fjsvibs/etc/def/log_inf オープン Java フレームワークのランタイムが利用する commons-logging の設定ファイルは以下に格納されています [Interstage のインストールディレクトリ ]\BAS\etc\def\log_inf\apfwcommons-logging.properties /opt/fjsvibs/etc/def/log_inf/apfwcommons-logging.properties apfwcommons-logging.properties の記述内容

134 apfwcommons-logging.properties にはログ実装クラスを記述します Log4J のログ出力クラスを利用する場合 com.fujitsu.interstage.apfw.commons.logging.log=com.fujitsu.interstage.apfw.commons.logging.impl.log4jlogger JDK のログ出力クラスを利用する場合 com.fujitsu.interstage.apfw.commons.logging.log=com.fujitsu.interstage.apfw.commons.logging.impl.jdk14logger SimpleLog のログ出力クラスを利用する場合 com.fujitsu.interstage.apfw.commons.logging.log=com.fujitsu.interstage.apfw.commons.logging.impl.simplelog オープン Java フレームワークのランタイムで利用するログ実装クラスが SimpleLog の場合 Struts/Spring Framework/iBATIS のオープン Java フレームワークのランタイムが利用する commons-logging のログ実装クラスに SimpleLog を指定した場合 SimpleLog の設定ファイルが読み込まれます 読み込まれるファイルは以下に格納されています [Interstage のインストールディレクトリ ]\BAS\etc\def\log_inf\apfwsimplelog.properties /opt/fjsvibs/etc/def/log_inf/apfwsimplelog.properties apfwsimplelog.propertiesの記述内容 apfwcommons-logging.propertiesにはログ出力に関する情報を記述します com.fujitsu.interstage.apfw.commons.logging.simplelog.defaultlog=info com.fujitsu.interstage.apfw.commons.logging.simplelog.log.org.jpn.xucker=debug com.fujitsu.interstage.apfw.commons.logging.simplelog.showdatetime=true com.fujitsu.interstage.apfw.commons.logging.simplelog.showlogname=false com.fujitsu.interstage.apfw.commons.logging.simplelog.showshortlogname=true com.fujitsu.interstage.apfw.commons.logging.simplelog.datetimeformat=yyyy/mm/dd HH:mm:ss:SSS zzz アプリケーションログの出力レベルについて ログ機能では アプリケーションが出力する情報に重要度を表すレベルを設定することができます また 特定のレベル以上のログだけを出力するようにログ定義ファイルで管理名ごとに設定することができます ログ出力レベルを設定することにより デバッグ時には多くの情報をログに出力したり 本稼働時には重要度が高いログに絞って出力したり ログを出力しない運用にするという制御が可能になります ログ定義ファイルにおいてログ出力レベルを 10 に設定した場合 ログ出力レベルが のログが出力されます アプリケーションでログを出力するために利用する commons-logging API ごとに対応するログ機能のログ出力レベルが異なっています 以下に commons-logging API とログ機能のログ出力レベルの対応表を記載します commons-logging API fatal() 3 error() 3 warn() 5 info() 10 ログ機能のログ出力レベル

135 debug() 15 trace() 20 ログ機能のデフォルトのログ出力レベルは9です 高信頼性ログにはログ出力レベルがないため 常に高信頼性ログへログが出力されます 6.2 ログ機能の利用方法 commons-logging APIを用いてログ出力する commons-logging API クラスを用いてログを出力する場合 (commons-logging API を用いてログ出力を行う場合 ) import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; public class MyApp { Log _log = null; public void method1() { if( _log == null ) { // ログ定義ファイルに記述したLogComposer"Log1" のログ出力クラスを取得します _log = LogFactory.getLog("Log1"); } // ログを出力します _log.info("method1 start"); } } LogComposer クラスを用いてログを出力する LogComposer クラスを用いてログを出力する場合 (LogComposer を用いてログ出力を行う場合 ) import org.apache.commons.logging.log;

136 import org.apache.commons.logging.logfactory; import com.fujitsu.interstage.apfw.common.logging.apfwlogger; import com.fujitsu.uji.log.logcomposer; public class MyApp { Log _log = null; ApfwLogger _al = null; LogComposer _lc = null; public void method1() { if( _log == null ) { // ログ定義ファイルに記述したLogComposer"Log1" のログ出力クラスを取得します _log = LogFactory.getLog("Log1"); _al = (ApfwLogger)_log; // LogComposerクラスを取得します _lc =_al.getlogcomposer(); } if( _lc!= null ) { // ログを出力します _lc.println(3,"method1 start",1); } else { // ログ出力クラスのオブジェクトがnullのため ログの出力ができません } } } ExtMessageComposer クラスを用いてログを出力する ExtMessageComposer クラスを用いてログを出力する場合 (ExtMessageComposer を用いてログ出力を行う場合 ) import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; import com.fujitsu.interstage.apfw.logging.apfwlogger;

137 import com.fujitsu.uji.log.ext.extmessagecomposer; public class MyApp { Log _log = null; ApfwLogger _al = null; ExtMessageComposer _emc = null; ; public void method1() { if( _log == null ) { // ログ定義ファイルに記述したLogComposer"Log1" のログ出力クラスを取得します _log = LogFactory.getLog("Log1"); _al = (ApfwLogger)_log; // ExtMessageComposerを取得します _emc = (ExtMessageComposer)_al.getLogComposer(); } if( _emc!= null ) { // ログを出力します _emc.printmessage("1000"); _emc.printmessage("1001",new String[]{"OK"}); } else { // ログ出力クラスのオブジェクトがnullのため ログの出力ができません } } } ExtDataComposer クラスを用いてログを出力する ExtDataComposer クラスを用いてログを出力する場合 (ExtDataComposer を用いてログ出力を行う場合 ) import java.util.hashmap;

138 import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; import com.fujitsu.interstage.apfw.logging.apfwlogger; import com.fujitsu.uji.log.ext.extdatacomposer; public class MyApp { Log _log = null; ApfwLogger _al = null; ExtDataComposer _edc = null; public void method1() { if( _log == null ) { // ログ定義ファイルに記述したLogComposer"Log1" のログ出力クラスを取得します _log = LogFactory.getLog("Log1"); _al = (ApfwLogger)_log; // ExtDataComposerを取得します _edc = (ExtDataComposer)_al.getLogComposer(); } // ExtDataComposerクラスに渡すデータを生成 HashMap _map = new HashMap(); if( _edc!= null ) { // ログを出力します _edc.printdata(5,"code","name","subname","messageid",_map); } else { // ログ出力クラスのオブジェクトがnullのため ログの出力ができません } } } ExtTimeComposer クラスを用いてログを出力する

139 ExtTimeComposer クラスを用いてログを出力する場合 (ExtTimeComposer を用いてログ出力を行う場合 ) import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; import com.fujitsu.interstage.apfw.logging.apfwlogger; import com.fujitsu.uji.log.ext.exttimecomposer; public class MyApp { Log _log = null; ApfwLogger _al = null; ExtTimeComposer _etc = null; public void method1() { if( _log == null ) { // ログ定義ファイルに記述したLogComposer"Log1" のログ出力クラスを取得します _log = LogFactory.getLog("Log1"); _al = (ApfwLogger)_log; // ExtTimeComposerを取得します _etc = (ExtTimeComposer)_al.getLogComposer(); } // ExtTimeComposerクラスに渡すデータを生成 long _currenttime; if( _etc!= null ) { // ログを出力します _etc.printtime(_currenttime,5,"code","name","subname","messageid"); } else { // ログ出力クラスのオブジェクトがnullのため ログの出力ができません } }

140 } ULogComposer クラスを用いてログを出力する ULogComposer クラスを用いてログを出力する場合 (ULogComposer を用いてログ出力を行う場合 ) import java.sql.connection; import java.util.hashtable; import javax.naming.initialcontext; import javax.sql.datasource; import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; import com.fujitsu.interstage.apfw.logging.apfwlogger; import com.fujitsu.uji.ulog.ulogcomposer; public class MyApp { Log _log = null; ApfwLogger _al = null; ULogComposer _ulc = null; public void method1() { if( _log == null ) { // ログ定義ファイルに記述したULogComposer"ULog1" のログ出力クラスを取得します _log = LogFactory.getLog("ULog1"); _al = (ApfwLogger)_log; // JNDI 環境の設定 Hashtable env = new Hashtable(); env.put(context.initial_context_factory, "com.fujitsu.symfoware.jdbc2.jndisp.symcontextfactory"); env.put(context.provider_url,"sym://..."); InitialContext ctx = null; DataSource ds = null; Connection connection = null;

141 try { ctx = new InitialContext(env); ds = (DataSource)ctx.lookup("jdbc/..."); connection = ds.getconnection(); // ULogComposerを取得します _ulc = (ULogComposer)_al.getULogComposer(connection); if( _ulc!= null ) { // ログを出力します _ulc.println(null,null,"somemethod start"); } else { // 高信頼ログ出力クラスのオブジェクトがnullのため ログの出力ができません } // 高信頼性ログの出力を終了する場合に クローズをします if( _ulc!= null ) { _ulc.close(); } // コネクションをクローズします if( connection!= null ) { connection.close(); } } catch(throwable t) { // 例外の処理をおこないます } } } } Spring Framework が提供する AOP 機能を利用して 以下の処理を業務アプリケーションから分離する事が可能になります 1. JNDI 環境の情報を設定する処理と高信頼性ログを出力するための ULogComposer を取得する処理を Spring Framework が提供する AOP 機能を利用して業務アプリケーションの前処理として作成する 2. 高信頼性ログ出力クラス およびコネクションのクローズ処理を Spring Framework が提供する AOP 機能を利用して業務アプリケーションの後処理として作成する

142 Spring Framework の AOP 機能を利用して 高信頼性ログを利用するために必要な処理を業務アプリケーションの処理から分離する事で 業務アプリケーションは commons-logging の API で高信頼性ログを利用する事が可能になります ULogComposer クラスを用いてログを出力する場合 (commons-logging API と AOP 機能 ) (commons-logging API Spring Framework の AOP を用いてログ出力を行う場合 ) package test; import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; public class MyApp { // AOP 機能のクラスからアクセス可能にします protected Log _log = null; public MyApp() { if( _log == null ) { // ログ定義ファイルに記述したULogComposer"ULog1" のログ出力クラスを取得します _log = LogFactory.getLog("ULog1"); } } public void method1() { // ログを出力します Try { _log.info("somemethod start"); } catch(throwable t) { // 例外の処理をおこないます ] } } (AOP 機能の利用 ) package test;

143 import java.sql.connection; import java.util.hashtable; import javax.naming.initialcontext; import javax.sql.datasource; import com.fujitsu.interstage.apfw.logging.apfwlogger; import com.fujitsu.uji.ulog.ulogcomposer; public class MyAppAop { ApfwLogger _al = null; ULogComposer _ulc = null; // サーバアプリケーションのmethod1が実行される前に動作するメソッド public void execmethod1before() { _al = (ApfwLogger)MyApp._log; // JNDI 環境の設定 Hashtable env = new Hashtable(); env.put(context.initial_context_factory, "com.fujitsu.symfoware.jdbc2.jndisp.symcontextfactory"); env.put(context.provider_url,"sym://..."); InitialContext ctx = null; DataSource ds = null; Connection connection = null; try { ctx = new InitialContext(env); ds = (DataSource)ctx.lookup("jdbc/..."); connection = ds.getconnection(); // ULogComposerを取得します _ulc = (ULogComposer)_al.getULogComposer(connection); } catch(throwable t) { // 例外の処理をおこないます }

144 } // サーバアプリケーションのmethod1が実行された後に動作するメソッド public void execmethod1after() { try { // 高信頼性ログの出力を終了する場合に クローズをします if( _ulc!= null ) { _ulc.close(); } // コネクションをクローズします if( connection!= null ) { connection.close(); } } catch(throwable t) { // 例外の処理をおこないます } } Spring Framework の Bean 定義ファイルのインスタンス生成方式には singleton を指定しないでください ( アプリケーションと AOP 機能 ) <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:aop=" xmlns:tx=" xsi:schemalocation=" <aop:config>

145 <aop:aspect id="ct001_asp" ref="myappaop"> <aop:pointcut id="pointcut" expression="execution(* method1())"/> <aop:before pointcut-ref="pointcut" method="execmethod1before"/> <aop:after pointcut-ref="pointcut" method="execmethod1after"/> </aop:aspect> </aop:config> <bean id="myappaop" class="test.myappaop"/> <bean id="myapp" class="test.myapp"/> </beans> 6.3 注意事項 ネーミングサービスが起動されているか確認してください RDB システムが起動しているか確認してください ログ定義ファイルが存在しているか確認してください ログ定義ファイルの定義に誤りがないか確認してください プロパティファイルが存在しているか確認してください プロパティファイルの定義に誤りがないか確認してください サブシステム名が以下の条件を満たした場合 正しく出力されません - 半角英数字以外でサブシステム名を指定している または - 8 文字以上の半角英数字でサブシステム名を指定している 開発環境におけるログ機能の動作について 開発環境において Interstage Studio のアプリケーションサーバ上でテストする場合 commons-logging のログ実装クラスとして ApfwLogger を利用することができません 6.4 トラブルシューティング javax.naming.communicationexception: SYMNameServer isn't being started. HostName : **** Exception: 接続が拒否されました というエラーメッセージが出力された 以下の可能性があります Symfoware のネーミングサービスが起動していない可能性があります ネーミングサービスのホスト名 ネーミングサービスのポート番号 で指定されているサーバで Symfoware のネーミングサービスが起動しているか確認してください ネーミングサービスのホスト名 に指定したホスト名 ネーミングサービスのポート番号 に指定したポート番号に誤りがある可能性があります 確認 修正後再度実施してください 詳細は Interstage Business Application Server セットアップガイド の 付録 B Symfoware の JDBC 環境の設定 > B.2 ネーミングサービスの起動 を参照してください 高信頼性ログの使用時に java.sql.sqlexception: [SymfoWARE ODBC Driver] JYP1010E サーバ接続要求が拒否されました. というエラーメッセージが出力された 以下の可能性があります

146 入力した データソース名 接続ホスト名 接続ポート番号 に誤りがある可能性があります 設定情報を確認して誤りがある場合は正しく修正してください Symfoware Server の RDB システムが起動していない場合があります RDB システムが起動しているか確認してください ログにコンテキスト ID が "*****" で出力される 以下の条件を満たす場合 コンテキスト ID が ***** でログに出力されます 1. 利用するログクラスが以下のいずれかである - com.fujitsu.uji.log.logcomposer - com.fujitsu.uji.log.ext.extdatacomposer - com.fujitsu.uji.log.ext.extmessagecomposer - com.fujitsu.uji.log.ext.exttimecomposer - com.fujitsu.uji.ulog.ulogcomposer 2. リクエストを受信して動作するメソッド以外でログを出力している 3. ログを出力している API が commons-logging API である コンテキスト ID はリクエストから情報を取り出して生成しています リクエストを受信して動作するメソッド以外でログを出力した場合 ログ定義ファイルに記載したメッセージフォーマットにコンテキスト ID が定義されていても コンテキスト ID が生成されていないのでログを出力することができません そのため 内部でダミーのコンテキスト ID"*****" を設定し ログを出力しています ログにリクエスト情報から生成されたコンテキスト ID を出力させる場合は リクエストを受信してから動作するメソッドでログを出力するようにアプリケーションを修正してください ログにコンテキスト ID が出力されない 以下の条件を満たす場合 コンテキスト ID がログに出力されません 1. 利用するログクラスが以下のいずれかである - com.fujitsu.uji.log.logcomposer - com.fujitsu.uji.log.ext.extdatacomposer - com.fujitsu.uji.log.ext.extmessagecomposer - com.fujitsu.uji.log.ext.exttimecomposer 2. リクエストを受信して動作するメソッド以外でログを出力している 3. ログを出力している API が前述 (1) のクラスが持っている API である コンテキスト ID はリクエストから情報を取り出して生成しています リクエストを受信して動作するメソッド以外でログを出力した場合 ログ定義ファイルに記載したメッセージフォーマットにコンテキスト ID が定義されていても コンテキスト ID が生成されていないためコンテキスト ID が出力されません ログにコンテキスト ID を出力させる場合は リクエストを受信してから動作するメソッドでログを出力するようにアプリケーションを修正してください 高信頼性ログを出力する際にエラーが発生する 以下の条件を満たす場合 高信頼性ログへログを出力できずにエラーが発生します 1. 利用するログクラスが以下である - com.fujitsu.uji.ulog.ulogcomposer 2. リクエストを受信して動作するメソッド以外でログを出力している コンテキスト ID はリクエストから情報を取り出して生成しています また 高信頼性ログの出力にはコンテキスト ID が必須です

147 リクエストを受信して動作するメソッド以外でログを出力した場合 必須であるコンテキスト ID が生成されていないため エラーとなります 高信頼性ログへログを出力させる場合は リクエストを受信してから動作するメソッドでログを出力するようにアプリケーションを修正してください 指定したサブシステム名が正しく出力されない 以下の可能性があります 半角英数字以外でサブシステム名を指定している または 8 文字以上の半角英数字でサブシステム名を指定している サブシステム名は半角英数字 7 文字以内を指定してください FSP_INTS-BAS_JF6002 の警告メッセージが出力される ユーザアプリケーションが動作するための外部ライブラリのモジュールで commons-logging を利用している場合 ユーザアプリケーションで設定したログ実装クラスの指定の影響を受けます ログ実装クラスに com.fujitsu.interstage.apfw.logging.apfwlogger を指定した場合は FSP_INTS-BAS_JF6002 の警告メッセージが出力される可能性があります 以下のログ定義を追加してください <logcomposer name="fsp_ints-bas_jf6002 の警告メッセージで出力された管理名 "> <output name=" 任意の名前 " type="stderr" /> </logcomposer>

148 第 7 章標準ログ 7.1 標準ログの概要 システムの開発 運用および保守の各工程において 有用なログ機能を提供しています ログ機能を利用することで オープン Java フレームワークの稼働状況および性能情報といったオープン Java フレームワークを使用する上でのさまざまなログを採取することができます 本章では オープン Java フレームワークが出力を制御している標準ログについて説明します 標準ログの機能 ログ定義ファイルの定義内容に従ってオープン Java フレームワークの運用状況や性能情報をログとして出力します ログには ID( コンテキスト ID) が出力され オープン Java フレームワーク上で動作するアプリケーションが出力するログと関連付けることができます 標準ログの種類 以下の 2 種類があります システムログオープン Java フレームワークの稼働状況や エラー状況をファイルに出力します 性能ログアプリケーションおよびオープン Java フレームワークの処理に要した時間をファイルに出力します システムログ出力 システムログ出力機能は オープン Java フレームワークの稼働状況やエラー状況を出力する機能です システムの起動 停止 および異常検出時にオープン Java フレームワークよりメッセージが出力されます また オープン Java フレームワーク上で動作するアプリケーションで使用するログとシステムログは コンテキスト ID により対応づけを行うことにより一元化して管理することができます 性能ログ出力 性能ログ出力機能は オープン Java フレームワーク内部での実行時間を出力する機能です アプリケーションの呼出しから復帰 ビューの表示の開始から復帰 オープン Java フレームワークの処理開始から処理終了までの経過時間などを出力します 7.2 標準ログの定義 標準ログで使用するログ定義について 以下に説明します 標準ログのログ定義ファイル格納パス [Interstage のインストールディレクトリ ]\BAS\etc\def\log_inf\logconfOss.xml 標準ログのログ定義ファイル格納パス /opt/fjsvibs/etc/def/log_inf/logconfoss.xml ワークユニット運用中にログ定義ファイルの修正を行った場合は ワークユニットの再起動を行ってください

149 ログ定義ファイルの修正 インストール時のログ定義ファイルをもとに 記述内容の変更方法について説明します なお 定義の変更の詳細については 以下を参照してください Interstage Business Application Server アプリケーション開発ガイド の 汎用ログ の ログ定義ファイルを用いたログ出力 Interstage Business Application Server リファレンス の ログ定義ファイルリファレンス 定義変更するログを選択する logcomposer タグの name には 以下の管理名が記述されています ログの目的管理名説明 システムログ system アプリケーションの稼動状況や エラー状況を出力します 性能ログ performance 特定の利用者による要求処理ごとの Web サーバ およびアプリケーションサーバでの処理時間を出力します 標準ログの出力先を変更する デフォルトの出力先を変更するには ログ定義ファイルの出力先を変更します ログ定義ファイルを変更するには 変更する管理名の定義の param タグを変更してください 出力先の変更の詳細については Interstage Business Application Server アプリケーション開発ガイド の 汎用ログ の ログ定義ファイルを用いたログ出力 の ログの出力先の設定 を参照してください 標準ログとユーザログの出力先を同じ出力先に指定して運用した場合 標準ログとユーザログが混在することがあります 標準ログのログ出力レベルを変更する デフォルトでは ログ出力レベルは 9 です 出力レベルを変更するには 変更する管理名の定義の level タグを変更してください 各ログ定義のログ出力レベルの詳細については 7.3 標準ログの出力レベル を参照してください 標準ログのログ出力フォーマットを変更する デフォルトでは 以下のフォーマットとなります コンテキスト ID メッセージ本文 ログ出力フォーマットを変更するには 変更する管理名の定義の msgformat タグを変更してください フォーマットの詳細については 7.5 標準ログの基本フォーマット を参照してください 標準ログの時刻を表示する デフォルトでは オープン Java フレームワークのランタイムが出力する標準ログは IJServer のコンテナログに出力されます コンテナログにはタイムスタンプが自動的に付与されて出力されます 以下のように 標準ログの出力先がコンテナログではない場合で かつ標準ログと共に時刻もあわせて出力する場合などは 標準ログで使用するログ定義ファイルを修正する必要があります 標準ログの出力先をコンテナログやシステムログ (syslog) 以外の ファイルなどに設定する場合 デフォルトでは 時刻を出力するための定義は以下に示すとおり 無効になっています <!-- <item name="%d" length="-1" format="yyyy/mm/dd kk:mm:ss.sss"> </item> --> 以下の例を参考にして 時刻を出力するための定義を有効にしてください <item name="%d" length="-1" format="yyyy/mm/dd kk:mm:ss.sss"> </item>

150 7.3 標準ログの出力レベル ログ機能では 出力する情報に重要度を表すレベルを設定することができます また 特定のレベル以上のログだけを出力するように設定できます ログ出力レベルを設定することにより デバッグ時には多くの情報をログに出力したり 本稼働時には重要度が高いログに絞って出力したり ログを出力しない運用にするという制御が可能になります たとえば ログ定義ファイルにおいてログ出力レベルを 10 に設定すると ログ出力レベルが 3 や 5 のログが出力されます なお インストール時のデフォルト設定では 出力レベルは 9 となっています 標準ログで利用するログレベル オープン Java フレームワークのランタイムの標準ログのログレベルは それぞれ以下のようになっています なお ログ定義を変更することにより 標準ログのログ出力レベルを変更することが可能です ログ定義の変更については 7.2 標準ログの定義 をご参照ください ログレベルを 15 に設定した場合 大量のログが IJServer のコンテナログに出力されます そのため アプリケーションの処理が遅くなることがあります この場合は ログレベルを下げてください また 大量のログが出力されることにより 古いログが消えてしまうことがあります ログの出力情報は IJServer ワークユニットおよびオープン Java フレームワークのランタイムの動作解析を行うための情報です したがって ログレベルを 15 に設定する場合は 出力先のディスク容量を十分確保してください IJServer ワークユニットのコンテナログの設定を変更し 大量のログが出力された場合でも ログの出力情報が保存されるような設定にすることを推奨します 以下に IJServer のログの設定方法を示します ログファイルのロールオーバログをバックアップする場合に ログサイズとログ収集時間のどちらでバックアップするかを指定します お使いの環境にあわせて ログサイズを変更してください 世代数バックアップしたログファイルを保管する世代数を指定します IJServer のログの設定は Interstage 管理コンソールの以下から行います [ システム ] > [ ワークユニット ] > ワークユニット名 > [ ログ定義 ] タブ > [ ワークユニットログの設定 ] システムログのログレベル オープン Java フレームワークのランタイムが出力するシステムログを ログレベルを使用して採取できます オープン Java フレームワークのランタイムで使用するログレベルは以下の種類があります ログレベル 出力情報 3 オープン Java フレームワークの開始と終了を示すログを出力 5 オープン Java フレームワークの分岐点での稼働状態を示すログを出力 15 サブコンポーネント間での稼働状態を示すログを出力 出力情報の詳細については 7.5 標準ログの基本フォーマットおよび 7.6 標準ログのメッセージ本文 を参照してください 性能ログのログレベル 性能ログには 以下のログレベルの種類があります Struts における性能ログのログレベル ログレベル 出力情報 3 開始時間は ActionServlet を開始した直後の時間 終了時間は ActionServlet から応答を返す時間を表示 15 開始時間は Action クラスを呼び出す直前の時間 終了時間は ユーザが作成した Action クラスから応答が返った時間を表示

151 ログレベル 出力情報 開始時間は Servlet/JSP を呼び出す直前の時間 終了時間は Servlet/JSP から応答が返った時間を表示 開始時間は Validator クラスを呼び出す直前の時間 終了時間は Validator クラスから応答が返った時間を表示 SpringFramework における性能ログのログレベル ログレベル 出力情報 3 開始時間は Spring-MVC を開始した直後の時間 終了時間は Spring-MVC から応答を返す時間を表示 開始時間は リモート接続先の IJServer を呼び出す直前の時間 終了時間は リモート接続先の IJServer から応答が返った時間を表示 開始時間は リモート接続を開始した直後の時間 終了時間は リモート接続から応答を返す時間を表示 開始時間は リモート環境下にあるクラスを呼び出す直前の時間 終了時間は リモート環境下にあるクラスから応答が返った時間を表示 15 開始時間は Spring が提供する Controller からクラスを呼び出す直前の時間 終了時間は 呼びだしたクラスから応答が返った時間を表示 ibatis における性能ログのログレベル ログレベル 開始時間は ユーザ作成の Controller クラスを呼び出す直前の時間 終了時間は ユーザ作成の Controller クラスから応答が返った時間を表示 開始時間は Servlet/JSP を呼び出す直前の時間 終了時間は Servlet/JSP から応答が返った時間を表示 開始時間は Validator クラスを呼び出す直前の時間 終了時間は Validator クラスから応答が返った時間を表示 出力情報 5 開始時間は ibatis の SQL 文発行メソッドを呼び出す直前の時間 終了時間は ibatis の SQL 文発行メソッドから応答が返った時間を表示 15 開始時間は SQL 発行を呼び出す直前の時間 終了時間は SQL 発行処理から応答が返った時間を表示 出力情報の詳細については 7.5 標準ログの基本フォーマットおよび 7.6 標準ログのメッセージ本文 を参照してください 7.4 サブシステム名 性能ログのセション情報に WEBアプリケーション単位でサブシステム名を出力することができます 以下に 設定方法を示します apfwlog.propertiesに以下のパラメタを追加します No. パラメタ名値説明 1 apfwlog.subsystemid 7 文字以内の半角英数字を指 定します 性能ログで出力するセション情報のサブシステム名です 省略すると セション情報にサブシステム名が出力されません サブシステム名を設定して有効にする場合 アプリケーションをワークユニットに再配備してください

152 7.5 標準ログの基本フォーマット 標準ログの基本フォーマットについて以下に説明します 標準ログの基本フォーマットを以下に示します 図 7.1 標準ログの基本フォーマット 以下に 基本フォーマットの説明をします No. 項目名定義名出力内容 1 時刻 %d ログを出力した日時が 以下のフォーマットで出力されます 年 / 月 / 日時 : 分 : 秒. ミリ秒 なお 日と時の間には空白が出力されます 2 コンテキストID %i オープンJavaフレームワークから引き継いだコンテキストIDを常にメッセージ本文の前へ出力します 本情報は コンテキストIDが確定した段階で出力されます また 出力される文字列は 大括弧 [] で括られます なお 本項目の出力内容には空白が含まれる場合があります 出力例 : [ID 001] 3 メッセージ本文 %m 出力するログによって可変です メッセージ本文については システムログおよび性能ログそれぞれで 出力する本文フォーマットは可変です 上の表の 定義名 は ログ定義ファイルにあらかじめ定義されています 基本フォーマットの出力項目については ログ定義ファイルに 定義名 の記述を行うことで変更することが可能です インストール時のデフォルトでは 項目名 時刻 の定義は無効になっています 時刻 の定義を有効にするためには 7.2 標準ログの定義 を参照してください 以下に 定義名 をログ定義ファイルに追記して 基本フォーマットを変更する例を示します 図 7.2 変更した基本フォーマットの例 以下に 基本フォーマットを変更した場合の説明をします No. 項目名定義名出力内容 1 時刻 %d ログを出力した日時が 以下のフォーマットで出力されます 年 / 月 / 日時 : 分 : 秒. ミリ秒 なお 日と時の間には空白が出力されます 2 スレッド名 %t ログを出力したスレッド名 3 メソッド名 %s ログ出力を行ったオープン Java フレームワークのクラスのメソッド名

153 No. 項目名定義名出力内容 4 ログレベル %l ログの重要度 5 % 記号 %% % 記号 6 コンテキストID %i オープンJavaフレームワークから引き継いだコンテキストIDを常にメッセージ本文の前へ出力します 本情報は コンテキストIDが確定した段階で出力されます また 出力される文字列は 大括弧 [] で括られます なお 本項目の出力内容には空白が含まれる場合があります 出力例 : [ID 001] 7 メッセージ本文 %m 出力するログによって可変です 基本フォーマットの設定の詳細については Interstage Business Application Server アプリケーション開発ガイド の 汎用ログ の ログのフォーマットの設定 を参照してください 7.6 標準ログのメッセージ本文 システムログ システムログは オープン Java フレームワークの稼働状態を表すインフォメーションログや エラー情報を表すエラーログを表します システムログのメッセージ本文には 以下に示すフォーマットでメッセージが出力されます 図 7.3 Struts が出力するシステムログのフォーマット 図 7.4 SpringFramework が出力するシステムログのフォーマット

154 図 7.5 ibatis が出力するシステムログのフォーマット 以下に システムログのメッセージ本文の説明をします No. 項目名 出力内容 1 ログ種別 IBS-AP-SYSTEM という文字列が出力されます 2 採取契機 システムログが出力される契機です ログの出力契機 を参照してください 3 メッセージID メッセージIDが出力されます 4 発生した例外情報 または 以下の付加情報を出力します Struts Actionパス 画面遷移先 リクエストURL Validator 種別のいずれか1つ メッセージ SpringFramework Bean 名 Validator 名 リクエストURL のいずれか1つ ibatis SQL Mapファイルで定義されたSQL ID SQL 文のどちらか 各項目の出力内容のなかに空白が含まれることがあります 本ログで出力するメッセージ本文の項目は ログ定義ファイルを用いて変更することは出来ません ログの出力契機 システムログは 以下の表に示す契機で出力されます Struts におけるシステムログの出力契機 ログ出力契機メッセージ ID ログの出力レベル採取契機の出力内容 ActionServlet 開始 ActionServlet-Call

155 ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容 ActionServlet 終了 ActionServlet-Return Actionクラス呼出し直前 Action-Class-Call Actionクラス終了直後 Action-Class-Return Servlet/JSP 呼出し直前 Struts-View-Call Servlet/JSP 終了直後 Struts-View-Return Validatorクラス呼出し直前 Struts-Validator-Call Validatorクラス終了直後 Struts-Validator-Return SpringFrameworkにおけるシステムログの出力契機 ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容 spring-mvc 入口 Spring-MVC-Call spring-mvc 終了 Spring-MVC-Return Spring が提供する Controller から呼び出されるクラス呼出し直前 Spring が提供する Controller から呼び出されるクラス終了直後 Spring-Controller-Call Spring-Controller-Return ユーザ作成のControllerクラス呼出し直前 Controller-Class-Call ユーザ作成のControllerクラス終了直後 Controller-Class-Return Servlet/JSP 呼出し直前 Spring-View-Call Servlet/JSP 終了直後 Spring-View-Return Validatorクラス呼出し直前 Spring-Validator-Call Validatorクラス終了直後 Spring-Validator-Return リモート呼出し直前 Spring-Remote-Call リモート終了直後 Spring-Remote-Return リモート入口 Spring-Remote-Receive リモート終了 Spring-Remote-Reply リモート環境下にあるクラス呼び出し直前 Remote-Class-Call リモート環境下にあるクラス終了直後 Remote-Class-Return ibatisにおけるシステムログの出力契機 ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容 ibatisのsql 文発行メソッド実行の入口 ibatis-call ibatisのsql 文発行メソッド実行の出口 ibatis-return SQL 実行直前 ibatis-sql-call SQL 実行直後 ibatis-sql-return 出力例以下の条件におけるシステムログの出力例を示します コンテキストID:ContextID 出力契機 :ActionServlet-Call

156 メッセージ ID: /04/21 19:07: [ContextID] IBS-AP-SYSTEM ActionServlet-Call 8300 [/test.war] ActionPath="/testAction" 性能ログ 性能ログは オープン Java フレームワーク内部での実行時間を表します 性能ログのメッセージ本文には 以下に示すフォーマットでメッセージを出力します 図 7.6 Struts が出力する性能ログのフォーマット 図 7.7 SpringFramework が出力する性能ログのフォーマット

157 図 7.8 ibatis が出力する性能ログのフォーマット 以下に 性能ログのメッセージ本文の説明をします No. 項目名 出力内容 1 ログ種別 IBS-AP-PERFORMANCE という文字列が出力されます 2 採取契機 性能ログが出力される契機です ログの出力契機 を参照してください 3 メッセージID メッセージIDが出力されます 4 以下の付加情報を出力します Struts Actionパス 画面遷移先 リクエストURL Validator 種別のいずれか1つ SpringFramework Bean 名 Validator 名 メッセージ リクエスト URL のいずれか 1 つ ibatis SQL Map ファイルで定義された SQL ID SQL 文 のどちらか 性能情報が出力されます メッセージには 以下の情報を出力します セション情報開始時刻出力時刻経過時間 開始時刻 および 出力時刻 は 年 / 月 / 日時 : 分 : 秒. ミリ秒 のフォーマットで出力されます なお 日と時の間には空白が出力されます 出力例 : ActionPath="/testAction.do" host1 Struts 2004/11/05 19:07: /11/05 19:07:

158 各項目の出力内容のなかに空白が含まれることがあります セション情報 オープン Java フレームワークで出力されるセション情報は以下の 2 つがあります No. 項目名定義名長さ出力内容 1 ホスト名 session.hostname 16 ホスト名が出力されます 2 サブシステム名 session.subsystemid 7 オープンJavaフレームワークを識別する情 報を出力します ( 注 1) 注 1) オープン Java フレームワークのランタイムが出力する性能ログのサブシステム名は 以下のようになります Struts SpringFramework ibatis オープン Java フレームワーク名 Struts Spring ibatis サブシステム名 ログの出力契機 性能ログは 以下の表に示す契機で出力されます Strutsにおける性能ログの出力契機ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容 ActionServlet 終了 ActionServlet Actionクラス終了直後 Action-Class Servlet/JSP 終了直後 Struts-View Validatorクラス終了直後 Struts-Validator SpringFrameworkにおける性能ログの出力契機ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容 spring-mvc 終了 Spring-MVC Spring が提供する Controller から呼び出されるクラス終了直後 Spring-Controller ユーザ作成のControllerクラス終了直後 Controller-Class Servlet/JSP 終了直後 Spring-View Validatorクラス終了直後 Spring-Validator リモート終了直後 Spring-Remote リモート終了 Spring-Remote-App リモート環境下にあるクラス終了直後 Remote-Class ibatisにおける性能ログの出力契機ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容 ibatisのsql 文発行メソッド実行の出口 ibatis

159 ログ出力契機メッセージ ID ログの出力レベル採取契機の出力内容 SQL 実行直後 ibatis-sql 出力例 以下の条件における性能ログの出力例を示します コンテキスト ID:ContextID 出力契機 :ActionServlet メッセージ ID:8500 ホスト名 :host1 サブシステム名 :Struts 開始時刻 :2009 年 05 月 01 日 19 時 07 分 07 秒 終了時刻 :2009 年 05 月 01 日 19 時 07 分 11 秒 2009/05/01 19:07: [ContextID] IBS-AP-PERFORMANCE ActionServlet 8500 [/test.war] host1 Struts 2009/05/01 19:07:07: /05/01 19:07:11: 注意事項 開発環境における標準ログの動作について 開発環境において Interstage Studio のアプリケーションサーバ上でオープン Java フレームワークを利用した場合 システムログ および性能ログを出力することはできません FSP_INTS-BAS_JF6010 の警告が表示されますが 問題ありません 7.8 トラブルシューティング 性能ログおよびシステムログを出力することができない 以下の可能性があります 性能ログ システムログの出力に必要な資材が IJServer のクラスパスに設定されていない可能性があります IJServer のクラスパスを確認してください

160 第 8 章バックアップ リストアおよびクラスタ 8.1 バックアップ リストア資源の一覧 オープンJavaフレームワークのバックアップ リストア対象資源は以下の通りです アプリケーションサーバ環境資源 Interstage Business Application Serverのetcディレクトリ配下 Interstage Business Application Serverのvarディレクトリ配下 Interstage Application Server 用の資源ファイルユーザログ定義資源 ( 注 1) ( 注 2) : 必須 : 任意 注 1) 詳細は Interstage Application Server 運用ガイド ( 基本編 ) を参照してください 注 2) 該当する機能を利用している場合は バックアップ リストア資源の対象としてください 8.2 バックアップの手順 オープン Java フレームワークにおけるバックアップの作業の流れを以下に示します 1. アプリケーションサーバの停止 2. アプリケーションサーバ環境資源のバックアップ 3. アプリケーションサーバの起動 アプリケーションサーバの停止 Interstage 管理コンソールまたは isstop コマンドを使用し Interstage を強制停止します 詳細は Interstage Application Server 運用ガイド ( 基本編 ) を参照してください アプリケーションサーバ環境資源のバックアップ Interstage Business Application Server の etc ディレクトリのバックアップ Interstage Business Application Server 運用ガイド ( アプリケーション連携実行基盤編 ) の Interstage Business Application Server の etc ディレクトリのバックアップ を参照してください Interstage Business Application Server の var ディレクトリのバックアップ Interstage Business Application Server 運用ガイド ( アプリケーション連携実行基盤編 ) の Interstage Business Application Server の var ディレクトリのバックアップ を参照してください Interstage Application Server 用の資源ファイルのバックアップ Interstage Application Server 運用ガイド ( 基本編 ) を参照してください ユーザログ定義資源のバックアップ Interstage Business Application Server 運用ガイド ( アプリケーション連携実行基盤編 ) の ユーザログ定義資源のバックアップ を参照してください

161 8.2.3 アプリケーションサーバの起動 処理前に停止したサービスを Interstage 管理コンソールまたは isstart コマンドで起動します 詳細は Interstage Application Server 運用ガイド ( 基本編 ) を参照してください 8.3 リストアの手順 オープン Java フレームワークにおけるリストアの作業の流れを以下に示します 1. アプリケーションサーバの停止 2. アプリケーションサーバ環境資源のリストア 3. アプリケーションサーバの起動 アプリケーションサーバの停止 Interstage 管理コンソールまたは isstop コマンドを使用し Interstage を強制停止します 詳細は Interstage Application Server 運用ガイド ( 基本編 ) を参照してください アプリケーションサーバ環境資源のリストア Interstage Business Application Server の etc ディレクトリのリストア Interstage Business Application Server 運用ガイド ( アプリケーション連携実行基盤編 ) の Interstage Business Application Server の etc ディレクトリのリストア を参照してください Interstage Business Application Server の var ディレクトリのリストア Interstage Business Application Server 運用ガイド ( アプリケーション連携実行基盤編 ) の Interstage Business Application Server の var ディレクトリのリストア を参照してください Interstage Application Server 用の資源ファイルのリストア Interstage Application Server 運用ガイド ( 基本編 ) を参照してください ユーザログ定義資源のリストア Interstage Business Application Server 運用ガイド ( アプリケーション連携実行基盤編 ) の ユーザログ定義資源のリストア を参照してください アプリケーションサーバの起動 処理前に停止したサービスを Interstage 管理コンソールまたは isstart コマンドで起動します 詳細は Interstage Application Server 運用ガイド ( 基本編 ) を参照してください 8.4 クラスタ構成 クラスタについての詳細は Interstage Application Server 高信頼性システム運用ガイド を参照してください

162 付録 A TERASOLUNA のサンプルアプリケーション ここでは TERASOLUNA アプリケーションのサンプルの作成方法および 動作方法を説明します A.1 サンプルの導入方法 ここでは サンプルの導入方法について説明します 本製品では以下のプロジェクトを提供します これらを開発環境にインポートして使用してください ブランクプロジェクトの所在ブランクプロジェクトは Interstage Business Application Serverの開発環境パッケージに同梱されています <Interstageインストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaBatchBlank.zip <Interstageインストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaRichBlank.zip <Interstageインストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaWebBlank.zip サンプルの所在サンプルプロジェクトは Interstage Business Application Serverの開発環境パッケージに同梱されています <Interstage インストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaBatchSample.zip <Interstage インストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaRichSample.zip <Interstage インストールディレクトリ >\BAS\sample\openjava\terasoluna\ISTerasolunaWebSample.zip A.2 TERASOLUNA Server Framework for Java (Web 版 ) のサンプル ここでは TERASOLUNA Server Framework for Java(Web 版 ) のサンプルの構成および動作方法を説明します サンプルの詳細については TERASOLUNAのドキュメント ( チュートリアル ) を参照してください A.2.1 サンプルの構成 このサンプルは ブランクプロジェクトをもとに 追加 修正を行って作成しています このサンプルでは 以下のことが行えます 項目ログオン / ログオフ画面分岐登録処理一覧表示入力チェック ( 単項目 ) 入力チェック ( 相関 ) アクセス制御 説明ビジネスロジッククラスの実行方法とユーザーバリューオブジェクトの使用方法画面のボタンによる分岐方法データベースアクセス一覧表示の実装方法単項目チェックの実装方法相関チェックの実装方法ログオン済みチェック方法 変更点 ブランクプロジェクトからの変更点について 以下に記載します

163 変更を加えた設定ファイル ファイル名説明変更した箇所 sqlmap.xml commoncontext.xml applicationcontext.xml struts-config.xml web.xml SQL 設定ファイル SQL 文を設定する Spring 設定ファイル モジュール共通の Bean 定義ファイル Spring 設定ファイル アプリケーション全体の Bean 定義ファイル Struts 設定ファイル アクションフォームやアクションパスの設定を行う Web アプリケーション設定ファイル フィルタの設定を行う SQL 文の追加トランザクション AOP 定義各種フィルタコントローラ定義プラグイン定義 SpringBean 設定ファイル バリデーション設定ファイル 入出力設定ファイルサーブレット定義各業務のStruts 設定ファイルを定義フィルタ定義 変更を加えたファイル ファイル名説明変更した箇所 welcome.jsp 初期画面ログオン画面へのリンク ApplicationResources.properties アプリケーションリソースファイル UVO の設定 認証を行わないパス application-messages.properties メッセージリソースファイルメッセージの追加 エラーメッセージの追加 pagelinks.properties ページリンクプロパティファイル 遷移できるページ数 リンクの文字列を設 定 追加作成したフォルダ フォルダ名 ContextRoot\WEB-INF\logon ContextRoot\WEB-INF\userManager ContextRoot\logon ContextRoot\userManager ログオン業務ユーザ管理業務ログオン業務ユーザ管理業務 業務名 追加作成したファイルファイル名 ContextRoot\WEB-INF\logon\struts-logon-config.xml ContextRoot\WEB-INF\logon\logonContext.xml ContextRoot\WEB-INF\logon\validation-logon.xml 説明 Struts 設定ファイル Spring 設定ファイルバリデーション設定ファイル

164 ファイル名 ContextRoot\WEB-INF\logon\blogic-logon-io.xml ContextRoot\WEB-INF\userManager\struts-userManager-config.xml ContextRoot\WEB-INF\userManager\userManagerContext.xml ContextRoot\WEB-INF\userManager\validation-userManager.xml ContextRoot\WEB-INF\userManager\blogic-userManager-io.xml ContextRoot\logon\logon.jsp ContextRoot\logon\menu.jsp ContextRoot\userManager\insert.jsp ContextRoot\userManager\list.jsp ContextRoot\userManager\result.jsp jp.terasoluna.thin.sample.web.common.controller.sampleauthcontroller jp.terasoluna.thin.sample.web.common.uvo.sampleuvo jp.terasoluna.thin.sample.web.logon.blogic.logonblogic jp.terasoluna.thin.sample.web.logon.dto.logoninput jp.terasoluna.thin.sample.web.logon.dto.logonoutput jp.terasoluna.thin.sample.web.logon.form.logonform jp.terasoluna.thin.sample.web.usermanager.blogic.insertblogic jp.terasoluna.thin.sample.web.usermanager.blogic.listblogic jp.terasoluna.thin.sample.web.usermanager.dto.insertinput jp.terasoluna.thin.sample.web.usermanager.dto.listinput jp.terasoluna.thin.sample.web.usermanager.dto.listoutput jp.terasoluna.thin.sample.web.usermanager.exception.insertexception jp.terasoluna.thin.sample.web.usermanager.form.agevalidator jp.terasoluna.thin.sample.web.usermanager.form.usermanagerform jp.terasoluna.thin.sample.web.usermanager.vo.selectuseroutput 説明 入出力設定ファイル Struts 設定ファイル Spring 設定ファイル バリデーション設定ファイル 入出力設定ファイル ログオン画面 メニュー画面 登録画面 一覧表示画面 結果画面 認証チェックを行う ユーザバリューオブジェクト実装クラス ログオン処理を行うビジネスロジック ログオン処理の入力クラス ログオン処理の出力クラス ログオン業務で使用するアクションフォーム 登録処理を行うビジネスロジック 一覧データを取得するビジネスロジック 登録処理の入力クラス 一覧データ取得処理の入力クラス 一覧データ取得処理の出力クラス 業務例外クラス 入力された年齢と生年月日の相関入力チェックを行うクラス ユーザ管理業務で使用するアクションフォーム 情報保持 Bean データベースからの取得時に画面からの入力時に使用される 変更内容の詳細については TERASOLUNA のドキュメント ( チュートリアル ) を参照してください Java のビルドパスの修正 サンプルでは Interstage を C:\Interstage にインストールされたものとして あらかじめ Java のビルドパスを設定してあります Interstage を C:\Interstage 以外のディレクトリにインストールした場合は Java のビルドバスを修正してください A.2.2 動作方法 サンプルを実行するための手順を説明します 1. データベースの作成 2. JDBC データソースの作成

165 3. IJServer ワークユニットの作成 4. 配備 5. 実行 1. データベースの作成 データベースを作成します サンプル用テーブルの作成については サンプルプロジェクトに含まれるスクリプトを利用してください 2. JDBC データソースの作成 Interstage 管理コンソールを使用し JDBC データソースを作成します [Interstage Application Server]>[ システム ]>[ リソース ]>[JDBC] を選択し 新規作成を行います 定義名 :TerasolunaWebSampleDataSource とし それ以外については 使用するデータベースに合わせて JDBC データソースを作成してください なお ここに作成するデータソースの内容と サンプルプロジェクト内の context.xml の記載内容を一致させてください 3. IJServer ワークユニットの作成 Interstage 管理コンソールを使用し IJServer ワークユニットを作成します [Interstage Application Server]>[ システム ]>[ ワークユニット ] を選択し 新規作成を行います また クラスパスの設定 で説明しているクラスパスを追加します 4. 配備 作成した IJServer ワークユニットに サンプルプロジェクトでビルドした war を配備します 5. 実行 にアクセスし サンプルを実行します 動作確認方法の詳細については TERASOULA のドキュメント ( チュートリアル ) を参照してください A.3 TERASOLUNA Server Framework for Java (Rich 版 ) のサンプル ここでは TERASOLUNA Server Framework for Java(Rich 版 ) のサンプルの構成および動作方法を説明します サンプルの詳細については TERASOLUNAのドキュメント ( チュートリアル ) を参照してください A.3.1 サンプルの構成 このサンプルは ブランクプロジェクトをもとに 追加 修正を行って作成しています このサンプルでは 以下のことが行えます 項目単純なロジックデータベースアクセス入力チェック ( 単項目 ) 入力チェック ( 相関 ) 例外処理アクセス制御 説明クライアントからのリクエスト処理データベースからのデータ取得やデータ更新単項目チェックの実装相関チェックの実装例外発生時の対処特定のパスへのアクセス制御

166 変更点 ブランクプロジェクトからの変更点について 以下に記載します ブランクプロジェクトから名前変更を行ったファイル リネーム前 blank-businesslogic.xml blank-controller.xml blank-servlet.xml リネーム後 sample-businesslogic.xml sample-controller.xml sample-servlet.xml 変更を加えた設定ファイル sqlmap.xml ファイル名説明変更した箇所 SQL 設定ファイル SQL 文を設定する SQL 文の追加 validation.xml バリデーション設定ファイル formset タグ内 commoncontext.xml applicationcontext.xml sample-businesslogic.xml sample-controller.xml Spring 設定ファイル AOP の Bean 定義ファイル Spring 設定ファイル アプリケーション全体の Bean 定義ファイル Spring 設定ファイル モジュール固有の Bean 定義ファイル Spring 設定ファイル モジュール固有の Bean 定義ファイル トランザクション AOP 定義 AOP の定義 入力チェック定義 業務ロジック定義 単純なロジック simpleservice 定義 データベースアクセス dbaccessservice 定義 コントローラ定義 単純なロジック xml-blogic-castor 定義 データベースアクセス xml-blogiccaster 定義 sample-setvlet.xml web.xml Spring 設定ファイル プレゼンテーション層共通の Bean 定義ファイル Web アプリケーション設定ファイル フィルタの設定を行う オブジェクト-XMLマッピング定義 BLogicコントローラ定義サーブレットマッピング定義エラーリソース定義 変更を加えたファイル ファイル名 説明 変更した箇所 application-messages.properties メッセージリソースファイル 共通 Validation 例外制御で使うメッセージ

167 追加作成したファイル ファイル名 jp.terasoluna.rich.sample.service.bean.userbean jp.terasoluna.rich.sample.service.bean.resultdata jp.terasoluna.rich.sample.service.blogic.simpleblogic jp.terasoluna.rich.sample.service.blogic.dbaccessblogic jp.terasoluna.rich.sample.service.validation.agevalidator 説明 ユーザ情報保持 Bean 入力クラス データベースからの取得時に使用される 結果クラス 入力クラスを結果クラスに格納する BLogic クラス データベースアクセスの BLogic クラス 入力された年齢と 生年月日の相関入力チェックを行う 変更内容の詳細については TERASOLUNA のドキュメント ( チュートリアル ) を参照してください Java のビルドパスの修正 サンプルでは Interstage を C:\Interstage にインストールされたものとして あらかじめ Java のビルドパスを設定してあります Interstage を C:\Interstage 以外のディレクトリにインストールした場合は Java のビルドバスを修正してください A.3.2 動作方法 サンプルを実行するための手順を説明します 1. データベースの作成 2. JDBC データソースの作成 3. IJServer ワークユニットの作成 4. 配備 5. 実行 1. データベースの作成 データベースを作成します サンプル用テーブルの作成については サンプルプロジェクトに含まれるスクリプトを利用してください 2. JDBC データソースの作成 Interstage 管理コンソールを使用し JDBC データソースを作成します [Interstage Application Server]>[ システム ]>[ リソース ]>[JDBC] を選択し 新規作成を行います 定義名 :TerasolunaRichSampleDataSource とし それ以外については 使用するデータベースに合わせて JDBC データソースを作成してください なお ここに作成するデータソースの内容と サンプルプロジェクト内の context.xml の記載内容を一致させてください 3. IJServer ワークユニットの作成 Interstage 管理コンソールを使用し IJServer ワークユニットを作成します [Interstage Application Server]>[ システム ]>[ ワークユニット ] を選択し 新規作成を行います また クラスパスの設定 で説明しているクラスパスを追加します 4. 配備 作成した IJServer ワークユニットに サンプルプロジェクトでビルドした war を配備します

168 5. 実行 サンプルプロジェクト内に含まれる index.html(isterasolunarichsample/contextroot/web-inf/index.html) を Web ブラウザで開き サンプルを実行します 動作確認方法の詳細については TERASOULA のドキュメント ( チュートリアル ) を参照してください A.4 TERASOLUNA Batch Framework for Java のサンプル ここでは TERASOLUNA Batch Framework for Javaのサンプルの作成方法および 動作方法を説明します なお ここで説明する手順で作成したサンプルの所在は サンプルの所在 を参照してください A.4.1 サンプルの作成方法 ここでは ブランクプロジェクトを元に サンプルを作成する手順を説明します サンプルを作成する手順を 次に示します 1. ブランクプロジェクトのインポート 2. プロジェクト名の変更 3. ファイルパスの修正 4. Javaパッケージの作成 5. 非同期ジョブを実行するJavaクラスの作成 6. 非同期ジョブを実行するサーブレットの作成 7. JSPの作成 8. ビジネスロジックの作成 9. ジョブ定義 Beanファイルの作成 ブランクプロジェクトのインポート 次の手順で ブランクプロジェクトをインポートします 1. Interstage Studio を起動します 2. Interstage Studio のメニューバーから [ ファイル ] > [ インポート ] を実行し [ インポート ] の画面を表示します 3. [ 選択 ] の画面で [ 一般 ] > [ 既存プロジェクトをワークスペースへ ] を選択し [ 次へ ] を実行します 4. [ プロジェクトのインポート ] の画面で [ アーカイブファイルの選択 ] を選択します 5. [ 参照 ] を実行し ブランクプロジェクトの zip ファイルを指定します なお ブランクプロジェクトの所在は ブランクプロジェクトの所在 を参照してください 6. [ プロジェクト ] に [ISTerasolunaBatchBlank] が表示されます 7. [ 終了 ] を実行します プロジェクト名の変更次の手順で プロジェクト名を変更します 1. Interstage Studioの [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchBlank] を選択する 2. Interstage Studioのメニューバーから [ ファイル ] > [ 名前変更 ] を実行し [Java プロジェクト名の変更 ] の画面を表示します 3. [ 新しい名前 ] に ISTerasolunaBatchSample を入力し [OK] を実行します なお プロジェクト名の変更に伴い プロジェクトのルートフォルダに ISTerasolunaBatchBlank.war が残っている場合は 削除します

169 ファイルパスの修正 サンプルでは Interstage を C:\Interstage にインストールされたものとして あらかじめファイルパスを設定しています Interstage を C:\Interstage 以外のディレクトリにインストールした場合は ファイルパスの修正 を参照してファイルパスを修正してください Java パッケージの作成 次の手順で src フォルダ配下に Java パッケージ servlet を作成します 1. Interstage Studio の [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [src] を選択します 2. Interstage Studio のメニューバーから [ ファイル ] > [ 新規作成 ] > [ パッケージ ] を実行し [ 新規 Java パッケージ ] の画面を表示します 3. [Java パッケージ ] の画面で [ 名前 ] に servlet を入力し [ 終了 ] を実行します 次の手順で src フォルダ配下に Java パッケージ job.job001 を作成します 1. Interstage Studio の [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [src] を選択します 2. Interstage Studio のメニューバーから [ ファイル ] > [ 新規作成 ] > [ パッケージ ] を実行し [ 新規 Java パッケージ ] の画面を表示します 3. [Java パッケージ ] の画面で [ 名前 ] に job.job001 を入力し [ 終了 ] を実行します 次の手順で batchappes フォルダ配下に Java パッケージ job.job001 を作成します 1. Interstage Studio の [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [batchapps] を選択します 2. Interstage Studio のメニューバーから [ ファイル ] > [ 新規作成 ] > [ パッケージ ] を実行し [ 新規 Java パッケージ ] の画面を表示します 3. [Java パッケージ ] の画面で [ 名前 ] に job.job001 を入力し [ 終了 ] を実行します 非同期ジョブを実行するJavaクラスの作成次の手順で 非同期ジョブを実行するクラス servlet.jobstarterinternal を作成します 1. Interstage Studioの [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [src] > [servlet] を選択します 2. Interstage Studioのメニューバーから [ ファイル ] > [ 新規作成 ] > [ クラス ] を実行し [ 新規 Java クラス ] の画面を表示します 3. [Java クラス ] の画面で [ 名前 ] に JobStarterInternal を入力し [ 終了 ] を実行します 4. servlet.jobstarterinternalクラスを 下図になるようにコーディングします /* * Interstage Business Application Server * * Copyright (c) 2009 FUJITSU LIMITED All Rights Reserved. */ package servlet; import jp.terasoluna.fw.batch.commonj.init.jobstarterimpl; import org.springframework.context.configurableapplicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; /** *CommonJ 用ジョブ起動クラスを介して ジョブを実行するクラスです */ class JobStarterInternal { /** * ジョブの実行が成功したことを示します */ public static final int SCHDULE_SUCCESS = 0;

170 /** * ジョブの実行が失敗したことを示します */ public static final int SCHDULE_ERROR = 1; /** * ジョブを実行します *@param jobid ジョブ ID *@param beanfilename ジョブ Bean 定義ファイル *@param args ジョブパラメーター *@return 実行結果 */ public static int execute(string jobid, String beanfilename, String[] args){ final String[] xmlpaths = new String[]{"common/WorkManagerContext.xml", "common/dataaccesscontext-batch.xml"}; final ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(xmlPaths); final JobStarterImpl starter = (JobStarterImpl)context.getBean("jobStarter"); } } if(args == null){ args = new String[0]; } return starter.execute(jobid, beanfilename, args); servlet.jobstarterinternalクラスの内容非同期ジョブを実行するサーブレットの作成次の手順で 非同期ジョブを実行するサーブレット servlet.executejobservlet を作成します 1. Interstage Studioの [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [src] > [servlet] を選択します 2. Interstage Studioのメニューバーから [ ファイル ] > [ 新規作成 ] > [ その他 ] を実行し [ 新規 ] の画面を表示します 3. [ ウィザードを選択 ] の画面で [J2EE] > [ サーブレット ] を選択し [ 次へ ] を実行します 4. [ サーブレット ] の画面で [ クラス名 ] に ExecuteJobServlet を入力し [ 終了 ] を実行します 5. servlet.executejobservletクラスを 下図になるようにコーディングします /* * Interstage Business Application Server * * Copyright (c) 2009 FUJITSU LIMITED All Rights Reserved. */ package servlet; import java.io.ioexception; import javax.servlet.requestdispatcher; import javax.servlet.servletcontext; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; /** * クライアントからのジョブ実行要求を受け付けて ジョブを実行するサーブレットです */ public class ExecuteJobServlet extends HttpServlet { private static final long serialversionuid = protected void service(httpservletrequest rq, HttpServletResponse rs) throws ServletException, IOException{

171 final String jobid = rq.getparameter("jobid"); // ジョブID final String beanfilename = rq.getparameter("beanfilename"); // ジョブBean 定義ファイル final String arguments = rq.getparameter("arguments"); // ジョブパラメーター final String[] args = (arguments!=null)? arguments.split(" ") : null; boolean result = false; try { final int r = JobStarterInternal.execute(jobId, beanfilename, args); result = (r == JobStarterInternal.SCHDULE_SUCCESS); } catch (Throwable e) { e.printstacktrace(); } } } rq.setattribute("result", result); ServletContext servletcontext = this.getservletcontext(); RequestDispatcher dispatcher = servletcontext.getrequestdispatcher("/result.jsp"); rs.setcharacterencoding("windows-31j"); dispatcher.forward(rq, rs); servlet.executejobservlet クラスの内容 JSPの作成次の手順で トップページとなるJSP /index.jsp を作成します 1. Interstage Studioの [ パッケージエクスプローラ ] ビューで [ContextRoot] を選択します 2. Interstage Studioのメニューバーから [ ファイル ] > [ 新規作成 ] > [ その他 ] を実行し [ 新規 ] の画面を表示します 3. [ ウィザードを選択 ] の画面で [J2EE] > [JSP] を選択し [ 次へ ] を実行します 4. [JavaServer Page] の画面で [ ファイル名 ] に index.jsp を入力し [ 終了 ] を実行します 5. /index.jspを 下図になるようにコーディングします <%@ page language="java" contenttype="text/html; charset=windows-31j" pageencoding="windows-31j"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis"> <title>top</title> </head> <body bgcolor="#cccccc"> <h1> 非同期バッチデーモン </h1> <form action="executejobservlet" method="post"> <input type="hidden" name="jobid" value="asyncbatchdaemon"> <input type="hidden" name="beanfilename" value="common/asyncbatchdaemonforcommonjbean.xml"> <input type="submit" value=" 非同期バッチデーモンの実行 "> </form> <hr> <h1> 非同期ジョブ </h1> <form action="executejobservlet" method="post"> <table border="0"> <tr><td> ジョブ ID</td><td>:<input type="text" size="80" name="jobid" value="samplejob"></td></tr> <tr><td> ジョブ Bean 定義ファイル </td><td>:<input type="text" size="80" name="beanfilename" value="job/job001/ SampleJob.xml"></td></tr> <tr><td> ジョブパラメーター </td><td>:<input type="text" size="80" name="arguments" value=""></td></tr> <tr><td colspan="2" align="right"><input type="submit" value=" 非同期ジョブの実行 "></td></tr> </table> </form>

172 </body> </html> index.jspの内容次の手順で 前述の servlet.executejobservlet サーブレットの実行結果を出力するJSP /result.jsp を作成します 1. Interstage Studioの [ パッケージエクスプローラ ] ビューで [ContextRoot] を選択します 2. Interstage Studioのメニューバーから [ ファイル ] > [ 新規作成 ] > [ その他 ] を実行し [ 新規 ] の画面を表示します 3. [ ウィザードを選択 ] の画面で [J2EE] > [JSP] を選択し [ 次へ ] を実行します 4. [JavaServer Page] の画面で [ ファイル名 ] に result.jsp を入力し [ 終了 ] を実行します 5. /result.jspを 下図になるようにコーディングします <%@ page language="java" contenttype="text/html; charset=windows-31j" pageencoding="windows-31j"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis"> <title>result</title> </head> <body bgcolor="#cccccc"> <h1> ジョブの実行結果 </h1> <p> <% boolean success = (Boolean)request.getAttribute("result"); if(success){ out.print(" 実行に成功しました "); }else{ out.print(" 実行に失敗しました "); } %> </p> </body> </html> result.jsp の内容 ビジネスロジックの作成 次の手順で ビジネスロジック job.job001.sampleblogic を作成します 1. Interstage Studio の [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [src] > [job.job001] を選択します 2. Interstage Studio のメニューバーから [ ファイル ] > [ 新規作成 ] > [ クラス ] を実行し [ 新規 Java クラス ] の画面を表示します 3. [Java クラス ] の画面で [ 名前 ] に SampleBLogic を入力し [ インタフェース ] に jp.terasoluna.fw.batch.openapi.blogic を追加し [ 終了 ] を実行します 4. job.job001.sampleblogic クラスを 下図になるようにコーディングします /* * Interstage Business Application Server * * Copyright (c) 2009 FUJITSU LIMITED All Rights Reserved. */ package job.job001; import jp.terasoluna.fw.batch.openapi.blogic; import jp.terasoluna.fw.batch.openapi.blogicresult;

173 import jp.terasoluna.fw.batch.openapi.jobcontext; import jp.terasoluna.fw.batch.openapi.returncode; /** * サンプルのビジネスロジックです */ public class SampleBLogic implements BLogic<String, JobContext> { } public BLogicResult execute(string data, JobContext jobcontext) { System.out.println(this.getClass().getName()+": data="+data); return new BLogicResult(ReturnCode.NORMAL_CONTINUE); } job.job001.sampleblogic クラスの内容 ジョブ定義 Beanファイルの作成次の手順で ジョブ定義 Beanファイル job.job001.samplejob.xml を作成します 1. Interstage Studioの [ パッケージエクスプローラ ] ビューで [ISTerasolunaBatchSample] > [batchapps] > [job.job001] を選択します 2. Interstage Studioのメニューバーから [ ファイル ] > [ 新規作成 ] > [ その他 ] を実行し [ 新規 ] の画面を表示します 3. [ ウィザードを選択 ] の画面で [XML] > [XML 文書ファイル ] を選択し [ 次へ ] を実行します 4. [XML ファイルの作成 ] の画面で [XML ファイルを最初から作成 ] を選択し [ 次へ ] を実行します 5. [XML ファイル名 ] の画面で [ ファイル名 ] に SampleJob.xml を入力し [ 終了 ] を実行します 6. job.job001.samplejob.xmlを 下図になるようにコーディングします <?xml version="1.0" encoding="utf-8"?> <!-- サンプルのジョブ定義ファイルです --> <beans xmlns=" xmlns:xsi=" xmlns:util=" xsi:schemalocation= " <import resource="classpath:/template/notransactionbean.xml"/> <bean id="collector" parent="stringarraypropertychunkcollector"> <property name="dataarray" value="data1,data2,data3" /> </bean> <bean id="blogic" class="job.job001.sampleblogic"> </bean> </beans> job.job001.samplejob.xmlの内容以上で サンプルの完成です A.4.2 サンプルの動作方法 ここでは サンプルを実行する手順を説明します サンプルを実行する手順を 次に示します 1. データベースの作成

174 2. JDBCデータソースの作成 3. IJServerワークユニットの作成 4. サンプルの配備 5. サンプルの実行 データベース作成 データベースを作成します なお テーブルを作成する SQL のサンプルは /sql フォルダにあります JDBC データソースの作成 Interstage 管理コンソールもしくは j2eeadmin コマンドを使用し JDBC データソースを作成します その際 [ 定義名 ] には TerasolunaBatch を設定し それ以外の項目には使用するデータベースに合わせて適切な設定を行います また JDBC データソースが使用する JDBC ドライバの jar を Interstage Application Server のシステムのクラスパスに追加します IJServer ワークユニットの作成 Interstage 管理コンソールを使用し IJServer ワークユニットを作成します [Interstage Application Server]>[ システム ]>[ ワークユニット ] を選択し 新規作成を行います また クラスパスの設定 で説明しているクラスパスを追加します サンプルの配備 作成した IJServer ワークユニットに サンプルプロジェクトでビルドした war を配備します サンプルの実行 にアクセスすると 次の画面が表示されます 続いて [ 非同期ジョブの実行 ] を実行します サンプルの実行結果の確認 ジョブの実行に成功すると 次の画面が表示されます

intra-mart im-JavaEE Framework

intra-mart im-JavaEE Framework intra-mart im-javaee Framework Version 6.1 Struts 連携ガイド 第 2 版 2010 年 7 月 30 日 > 変更年月日変更内容 2007/7/31 初版 2010/7/30 第 2 版 プレゼンテーションフレームワークに関する記述を削除 目次 > 1 はじめに...3 1.1 目的...3 2 アプリケーションの作成...3

More information

intra-mart im-J2EE Framework

intra-mart im-J2EE Framework intra-mart im-j2ee Framework Version 6.0 Struts 連携ガイド 初版 2006 年 8 月 11 日 変更年月日 2006/8/11 初版 > 変更内容 目次 > 1 はじめに...3 1.1 目的...3 2 アプリケーションの作成...3 2.1 前提...3 2.2 Strutsからim-J2EE Frameworkのイベントフレームワークへの連携...3

More information

プレポスト【問題】

プレポスト【問題】 コース名 : サーブレット /JSP/JDBC プログラミング ~Eclipse による開発 ~ 受講日 氏名 1 JDBC の説明として 間違っているものを 1 つ選びなさい 1. JDBC を使用してデータベースへアクセスするときには JDBC API が必要である 2. JDBC API は java.lang パッケージとして提供されている 3. JDBC には JDBC API JDBC

More information

V8.1新規機能紹介記事

V8.1新規機能紹介記事 WebOTX V8.1 新規機能 EJB 3.0 WebOTX V8.1より Java EE 5(Java Platform, Enterprise Edition 5) に対応しました これによりいろいろな機能追加が行われていますが 特に大きな変更であるEJB 3.0 対応についてご紹介いたします なお WebOTX V7で対応したEJB 2.1についてもWebOTX V8.1で引き続き利用することが可能です

More information

5-1- 応開発フレームワークに関する知識 開発フレームワークを利用した Web アプリケーションの実装方法を理 Ⅰ. 概要解する MVC や OR マッピング DIxAOP といった技術を理解する Ⅱ. 対象専門分野職種共通 Ⅲ. 受講対象者 本カリキュラムの 5-1- 基開発フレームワークに関す

5-1- 応開発フレームワークに関する知識 開発フレームワークを利用した Web アプリケーションの実装方法を理 Ⅰ. 概要解する MVC や OR マッピング DIxAOP といった技術を理解する Ⅱ. 対象専門分野職種共通 Ⅲ. 受講対象者 本カリキュラムの 5-1- 基開発フレームワークに関す 5-1- 応開発フレームワークに関する知識 1 5-1- 応開発フレームワークに関する知識 開発フレームワークを利用した Web アプリケーションの実装方法を理 Ⅰ. 概要解する MVC や OR マッピング DIxAOP といった技術を理解する Ⅱ. 対象専門分野職種共通 Ⅲ. 受講対象者 本カリキュラムの 5-1- 基開発フレームワークに関する知識 を受講受講前提済みであること または 同等の知識を有すること

More information

intra-mart WebPlatform/AppFramework

intra-mart WebPlatform/AppFramework intra-mart WebPlatform/AppFramework Ver.7.2 Struts 連携プログラミングガイド 2010/04/01 初版 変更年月日 2010/04/01 初版 > 変更内容 目次 > 1 はじめに...1 1.1 目的...1 2 アプリケーションの作成...2 2.1 Strutsからim-JavaEE Frameworkのイベントフレームワークへの連携...2

More information

intra-mart im-J2EE Framework

intra-mart im-J2EE Framework intra-mart im-j2ee Framework Version 5.0 Struts 連携ガイド 第 2 版 2005 年 7 月 8 日 > 変更年月日変更内容 2005/06/02 初版 2005/07/08 第 2 版 以下の節を追加 2 Strutsのインストール 付録 B 変更内容 サンプルの一部を廃止 Struts 1.2.7 対応 目次 >

More information

intra-mart im-J2EE Framework

intra-mart im-J2EE Framework intra-mart im-j2ee Framework Version 5.1 Struts 連携ガイド 初版 2005 年 12 月 27 日 変更年月日 2005/12/28 初版 > 変更内容 目次 > 1 はじめに...3 1.1 目的...3 2 Strutsのインストール...3 2.1 Struts...3 2.1.1 Struts の組込み...3

More information

WebOTXマニュアル

WebOTXマニュアル WebOTX アプリケーション開発ガイド WebOTX アプリケーション開発ガイドバージョン : 7.1 版数 : 第 2 版リリース : 2010 年 1 月 Copyright (C) 1998-2010 NEC Corporation. All rights reserved. 4-1-1 目次 4. J2EE WebOTX...3 4.1. Webアプリケーション...3 4.1.1. Webアプリケーションを作成する...3

More information

移行支援資料 ~J2EE機能からの移行ポイント~

移行支援資料 ~J2EE機能からの移行ポイント~ Interstage Web Server Express 移行支援資料 ~J2EE 機能からの移行ポイント ~ migration-201304 2013 年 4 月 まえがき 本書の目的 本書は Interstage Web Server で J2EE 機能を使用していたユーザーが Interstage Web Server Express に移行する場合について説明します 本書の表記について

More information

intra-mart Accel Platform

intra-mart Accel Platform セットアップガイド (WebSphere 編 ) 第 4 版 2014-01-01 1 目次 intra-mart Accel Platform 改訂情報 はじめに 本書の目的 前提条件 対象読者 各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定 Java VM 引数の設定 トランザクション タイムアウトの設定 データベース接続の設定

More information

移行支援資料 ~J2EE機能から Java EE 5機能への移行ポイント~

移行支援資料 ~J2EE機能から Java EE 5機能への移行ポイント~ FUJITSU Software Interstage Application Server 移行支援資料 ~J2EE 機能から Java EE 5 機能への移行ポイント ~ migration-201410 2014 年 10 月 まえがき 本書の目的 本書は Interstage Application Server V6~V11 で J2EE の Servlet サービス機能を使用していたユーザーが

More information

WebOTX V6 J2EEアプリケーションのトラブルシューティング

WebOTX V6 J2EEアプリケーションのトラブルシューティング WebOTX V6 J2EE アプリケーションのトラブルシューティング ( リソース参照 EJB 参照 ) 2006 年 11 月初版 改版履歴 i 目次 1 はじめに...1 2 リソース参照 EJB 参照について...1 3 リソース参照 EJB 参照の設定に問題がある時のエラーと対処方法について...2 4 設定方法...2 4.1 リソース参照...3 4.1.1 WebOTX 配備ツールを使用する場合...3

More information

Interstage Application ServerのTLS 1.1/1.2サポートについて(広報)

Interstage Application ServerのTLS 1.1/1.2サポートについて(広報) 2016 年 9 月 23 日 ( 初版 ) 富士通株式会社 Interstage Application Server の TLS 1.1/1.2 サポートについて ( 広報 ) Interstage Application Server の TLS 1.1 および TLS 1.2 対応について お知らせいたします 脆弱性に対する予防およびセキュリティ強化の動向より SSL による暗号化通信利用時に指定するプロトコルバージョンとして

More information

Server Core適用ガイド

Server Core適用ガイド Systemwalker Service Quality Coordinator Server Core 適用ガイド Windows B1WS-0811-01Z0(00) 2008 年 9 月 まえがき 本書の目的 本書は Systemwalker Service Quality Coordinator V13.3.0 を Microsoft(R) Windows Server(R) 2008 Server

More information

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版   Copyright 2018 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 辞書項目 API 3.1. 最新バージョン 3.1.1. 最新バージョンの辞書を取得する 3.2. 辞書項目 3.2.1. 辞書項目を取得する 3.2.2.

More information

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform セットアップガイド (WebSphere 編 ) 第 7 版 2016-12-01 改訂情報はじめに本書の目的前提条件対象読者各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定

More information

新OS使用時の留意事項

新OS使用時の留意事項 2014 年 3 月富士通株式会社 新 OS 使用時の留意事項 Fujitsu Software Interstage Print Manager( 以降 Interstage Print Manager) の動作オペレーティングシステムに以下をサポートします Windows 8 Windows 8.1 2012 2012 R2 この動作環境においても従来と同等の機能をご利用になれますが ご利用に関しての留意事項について説明します

More information

WebOTXマニュアル

WebOTXマニュアル WebOTX アプリケーション開発ガイド WebOTX アプリケーション開発ガイドバージョン : 7.1 版数 : 第 2 版リリース : 2010 年 1 月 Copyright (C) 1998-2010 NEC Corporation. All rights reserved. 3-1 目次 3. J2EE WebOTX...3 3.1. Webアプリケーション...3 3.1.1. WARファイルをインポートするとタスクにエラーが表示される...3

More information

BIP Smart サンプル説明書

BIP Smart サンプル説明書 BIP 向け BIP Smart サンプル説明書 はじめに 本書は BIP Smart のサンプル説明書です [ 対象製品 ] BIP Smart 帳票連携 Edition [ 免責事項 ] 本プログラムはサンプルプログラムであるため 株式会社 PFU( 以降 PFU と表記 ) は 本プログラムに関して一切の動作保証をするものではありません また 本プログラムに不備があっても PFU はその修正および

More information

BIP Smart サンプル説明書

BIP Smart サンプル説明書 FUJITSU Software Interstage List Creator 向け BIP Smart サンプル説明書 はじめに 本書は BIP Smart のサンプル説明書です [ 対象製品 ] BIP Smart 帳票連携 Edition [ 免責事項 ] 本プログラムはサンプルプログラムであるため 株式会社 PFU( 以降 PFU と表記 ) は 本プログラムに関して一切の動作保証をするものではありません

More information

rcp-add-01:アーキテクチャ設計書

rcp-add-01:アーキテクチャ設計書 Web 注文管理システム ( サンプル ) 履歴 バージョン 改訂内容 改訂者 改訂日 0.1 新規作成 山下 2010/11/1 目次 1. はじめに 1.1 本文書の目的 1.2 参照資料 / 文献 2. 概説 2.1 アーキテクチャ要件 2.3 対象とする機能要件 ( ユースケース ) 2.4 アーキテクチャ設計方針 2.4 仮定と依存 3. 構造及び構成 3.1 物理配置図 3.2 実行環境

More information

Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0

Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0 Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0 ... 1... 2... 3... 5... 6... 6... 9... 9 Vector... 10 Struts... 12... 14 cart.jsp 1... 15 cart.jsp 2... 17 JSP...

More information

SystemDirector Developer's Studio(V3.2) 適用ガイド

SystemDirector Developer's Studio(V3.2) 適用ガイド 目次 6. 開発時のトラブルシューティング...2 6.2. WTP( 共通 ) の注意制限事項... 2 6.2.1. インストール済みサーバランタイム環境 画面の キャンセル...2 6.2.2. サーブレットの作成 画面の スーパークラスからのコンストラクター...3 6.2.3. Webプロジェクトの設定 画面の デフォルトの復元...3 6.2.4. サーバー 画面の デフォルトの復元...4

More information

Another HTML-lint 導入マニュアル(JSP)版

Another HTML-lint 導入マニュアル(JSP)版 HeartCore Another HTML-lint 導入マニュアル (JSP 版 ) October 2013 Ver1.1-1 - 改訂履歴 改訂日 改訂内容 Ver1.0 2013 年 07 月 マニュアル改訂 Ver1.1 2013 年 10 月 フォーマット改訂 - 2 - 目次 1. 本文書の目的と対象ライセンス... - 4-1.1. 概要説明... - 4-1.1. 対象ライセンス...

More information

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. IM- 共通マスタの拡張について 2.1. 前提となる知識 2.1.1. Plugin Manager 2.2. 表記について 3. 汎用検索画面の拡張 3.1. 動作の概要 3.1.1. 汎用検索画面タブの動作概要 3.2. 実装の詳細 3.2.1. 汎用検索画面タブの実装

More information

リリース情報

リリース情報 NetCOBOL JEF オプション V7.0L30 リリース情報 Windows B1WD-1131-02Z0(00) 2012 年 12 月 まえがき 本書は NetCOBOL JEF オプションのリリース情報について説明します NetCOBOL シリーズについて NetCOBOL シリーズの最新情報については 富士通のサイトをご覧ください http://software.fujitsu.com/jp/cobol/

More information

untitled

untitled Struts IT Open Source JavaEE Application Consulting Struts Open Source JavaWorld Jakarta 4 Jakarta/Apache Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 2 1986 150 CAC OSS Consulting,, Web System

More information

intra-mart ワークフローデザイナ

intra-mart ワークフローデザイナ intra-mart ワークフローデザイナ Version 5.0 インストールガイド 初版 2005 年 6 月 17 日 変更年月日 2005/06/17 初版 > 変更内容 目次 > 1 はじめに...1 1.1 インストールの概要...1 1.2 用語について...1 1.3 前提条件...1 2 インストール手順...2 2.1 サーバへのファイルのインストール...2

More information

富士通Interstage Application Server V10でのOracle Business Intelligence の動作検証

富士通Interstage Application Server V10でのOracle Business Intelligence の動作検証 富士通 Interstage Application Server V10 での Oracle Business Intelligence の動作検証 Fujitsu Oracle ホワイト ペーパー 2011 年 11 月 富士通 Interstage Application Server V10 での Oracle Business Intelligence の動作検証 1. はじめに 日本オラクル株式会社と富士通株式会社は

More information

Connection Manager インストールガイド(Windows編)

Connection Manager インストールガイド(Windows編) Symfoware Server V10.0.0 Connection Manager インストールガイド (Windows 編 ) Windows J2X1-7505-01Z0(00) 2010 年 1 月 まえがき 本書の目的 本書は Connection Manager のインストール方法を説明しています 本書の読者 本書を読むためには 以下の知識が必要です また あらかじめ 解説書 を読んでいただくことをお勧めします

More information

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2 レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager 2.2.0 < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2 Platform Standard Edition Development Kit 5.0 Java SE Development Kit 6 < 追加機能一覧

More information

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版  

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 改訂情報はじめに本書の目的対象読者本書の構成概要外部ソフトウェア接続モジュールとは仕様外部ソフトウェア接続モジュールの構成サンプルプログラムサンプル内容動作に必要な環境構築プログラムソースログイン セキュリティ環境の構築外部ソフトウェア連携時の認可設定 2 改訂情報 変更年月日 変更内容 2012-12-21

More information

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版   Copyright 2019 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 前処理プログラム 3.1. 前処理を実装する 3.1.1. 前処理の実装方式 3.1.2. 前処理の実行順序と引数 3.1.3. リクエストパラメータの解析

More information

アプリケーションサーバ用データベースアクセス 汎用コントロール Version Copyright(c) 2004 MRO co;ltd All Rights Reserved

アプリケーションサーバ用データベースアクセス 汎用コントロール Version Copyright(c) 2004 MRO co;ltd All Rights Reserved アプリケーションサーバ用データベースアクセス 汎用コントロール Version 2.0.0 目 次 1. はじめに... 1 2. 概要... 2 3. セットアップ方法... 3 3.1.NET 版をご利用の例... 3 3.1.1 サーバの配置例... 3 3.1.2 各種モジュールの配置... 3 3.1.3 環境定義ファイル... 4 3.2 J2EE 版をご利用の例... 5 3.2.1

More information

トラブルシューティング集

トラブルシューティング集 FUJITSU Software Interstage Mobile Application Server V1.0.0 トラブルシューティング集 B1WS-1131-01(00) 2013 年 10 月 まえがき 本書の目的 本書は Interstage Mobile Application Server のトラブルシューティングを目的としています 本書の読者 本書は Interstage Mobile

More information

FUJITSU Software Systemwalker for Oracle V15 (15.1) 紹介資料

FUJITSU Software Systemwalker for Oracle V15 (15.1) 紹介資料 FUJITSU Software Systemwalker for Oracle V15.1 ご紹介 2017 年 12 月富士通株式会社 目次 こんなことでお困りではありませんか? Systemwalker for Oracleが解決します! Systemwalker for Oracle 機能ご紹介 動作環境 ( プラットフォーム ) 他社と比べてSystemwalker for Oracleはこんなに便利

More information

監査ログ分析機能 ソフトウェア説明書

監査ログ分析機能 ソフトウェア説明書 ソフトウェア説明書 Windows 版 Systemwalker Centric Manager Enterprise Edition Systemwalker Centric Manager Standard Edition 監査ログ分析機能 V13.2.0 本書は 製品の取扱い ご使用に際して特に注意すべき事項 参考となる情報等を記 したものです [ 高度な安全性が要求される用途への使用について

More information

intra-mart WebPlatform/AppFramework

intra-mart WebPlatform/AppFramework intra-mart WebPlatform/AppFramework Ver.7.2 ポータルシステム管理者操作ガイド 2010/04/01 初版 i 変更履歴 変更年月日 変更内容 2010/04/01 初版 ii 第 1 章ポートレット管理 1 1.1 ポートレット管理とは 2 1.2 ポートレットアプリケーション一覧 3 1.2.1 概要 3 1.3 ポートレットアプリケーションの登録 4

More information

1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は JCA 仕様準拠のコンテナとして多くの J2EE 準拠アプリケーションサーバーについて動作

1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は JCA 仕様準拠のコンテナとして多くの J2EE 準拠アプリケーションサーバーについて動作 Micro Focus Server Express 5.1 J for Red Hat x86_64 Cosminexus Application Server 動作検証結果報告書 2008 年 12 月 12 日 マイクロフォーカス株式会社 1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server

More information

(Microsoft PowerPoint - ClickFramework.ppt [\214\335\212\267\203\202\201[\203h])

(Microsoft PowerPoint - ClickFramework.ppt [\214\335\212\267\203\202\201[\203h]) Click Framework ~Simple is the Best~ NTT データ先端技術 竹添直樹 takezoe@gmail.com 1 自己紹介 竹添直樹 ( たけぞう ) NTT データ先端技術所属 OSS 関連 Project Amaterasオーナー Click Framework コミッタ Seasarプロジェクトコミッタ FreeStyle Wiki 2 3 仕事で使っているフレームワークは何ですか?

More information

Oracle SOA Suite 11gコンポジットに対するSOASchedulerの構成

Oracle SOA Suite 11gコンポジットに対するSOASchedulerの構成 Oracle SOA Suite 11g コンポジットに対する SOAScheduler の構成 オラクル Senior Solution Architect Robert Baumgartner 2010 年 11 月 Oracle SOA Suite 11g コンポジットに対する SOAScheduler の構成 1 前提条件 https://soasamples.samplecode.oracle.com/

More information

intra-mart Accel Platform

intra-mart Accel Platform intra-mart Accel Platform IM- 共通マスタスマートフォン拡張プログラミングガイド 2012/10/01 初版 変更年月日 2012/10/01 初版 > 変更内容 目次 > 1 IM- 共通マスタの拡張について...2 1.1 前提となる知識...2 1.1.1 Plugin Manager...2 1.2 表記について...2 2 汎用検索画面の拡張...3

More information

Linkexpress トラブル初期調査資料 採取コマンド使用手引書

Linkexpress トラブル初期調査資料 採取コマンド使用手引書 FUJITSU Software Linkexpress Standard Edition V5.0L15 Linkexpress Enterprise Edition V5.0L15 Linkexpress トラブル初期調査資料採取コマンド使用手引書 Windows/Windows(64) J2X1-2740-14Z0(00) 2014 年 12 月 まえがき 本書の目的 本書は 下記製品でエラーが発生した場合の初期調査資料の採取方法を説明します

More information

SpringSecurity

SpringSecurity Spring Security 1/40 OUTLINE Spring Security Spring Securityを使った認証の仕組み Spring Securityを使った独自認証 認証エラーメッセージの変更 2/40 Spring Security 3/40 Spring Security とは アプリケーションのセキュリティを高めるためのフレームワーク 認証 認可機能 その他 多数のセキュリティ関連の機能を持つ

More information

Eclipse 操作方法 (Servlet/JSP 入門補助テキスト)

Eclipse 操作方法 (Servlet/JSP 入門補助テキスト) Eclipse 操作方法 (Servlet/JSP 入門補助テキスト) 1. プロジェクトの作成 Eclipse はプロジェクトという単位でプログラムを管理します. 今回のサンプルを実行する為のプロジェクトとして intro プロジェクトを作成します. 1-1. Eclipse 左のツリー画面から空白部分を右クリックし New - Project... を選択します. 1-2. Web - Dynamic

More information

WebアプリケーションサーバJBoss入門

WebアプリケーションサーバJBoss入門 Web アプリケーションサーバ JBoss 入門 ~JBoss 移行時の注意点 ~ 2012/9/7 株式会社日立ソリューションズ OSS ソリューションビジネス推進センタ Web アプリケーションサーバ JBoss 入門 ~JBoss 移行時の注意点 ~ Contents 1. 章はじめに 2. 章 JBoss 移行手順 3. 章 JBoss 移行時の注意点 4. 章 JBoss 移行アセスメントサービスのご紹介

More information

セットアップカード

セットアップカード R3.4 セットアップカード - 第 1.01 版 - Copyright NEC Corporation 2003-2016. All rights reserved. 商標について LogCollector は日本電気株式会社の登録商標です Microsoft Windows Windows Server Windows Vista Internet Explorer および SQL Server

More information

メディプロ1 Javaサーブレット補足資料.ppt

メディプロ1 Javaサーブレット補足資料.ppt メディアプロジェクト演習 1 Java サーブレット補足資料 CGI の基本 CGI と Java サーブレットの違い Java サーブレットの基本 インタラクティブな Web サイトとは Interactive q 対話 または 双方向 q クライアントとシステムが画面を通して対話を行う形式で操作を行っていく仕組み 利用用途 Web サイト, シミュレーションシステム, ゲームなど WWW = インタラクティブなメディア

More information

Team Foundation Server 2018 を使用したバージョン管理 補足資料

Team Foundation Server 2018 を使用したバージョン管理 補足資料 Team Foundation Server 2018 を使用したバージョン管理 Magic xpa 3.0/Magic xpa 2.5/uniPaaS V1Plus 補足資料 マジックソフトウェア ジャパン株式会社 2018 年 8 月 24 日 本ドキュメントは Magic xpa 3.0/Magic xpa 2.5/uniPaaS V1Plus で Team Foundation Server(

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 5 月 Java 基礎 1 タイトル Java 基礎 2 日間 概要 目的 サーバサイドのプログラミング言語で最もシェアの高い Java SE の基本を習得します 当研修ではひとつの技術ごとに実用的なアプリケーションを作成するため 効果的な学習ができます Java SE の多くの API の中で 仕事でよく利用するものを中心に効率よく学びます 実際の業務で最も利用される開発環境である Eclipse

More information

OpenRulesモジュール

OpenRulesモジュール リリースノート初版 2014-09-01 1 改訂情報 変更年月日 変更内容 2014-09-01 初版 目次 2 はじめに 本書の目的 本書では OpenRules を intra-mart で利用するためのモジュールのリリース内容について記載されています なお OpenRules 製品本体のリリースについては OpenRules のリリースノートをご確認ください 製品の利用対象 次の利用者を対象としています

More information

PowerPoint Presentation

PowerPoint Presentation 上級プログラミング 2( 第 7 回 ) 工学部情報工学科 木村昌臣 今日のテーマ Web アプリケーションとは Web アプリケーションとはなにか Web アプリケーションの仕組み 三層アプリケーション サーブレット JSP JavaBeans MVC モデル Web アプリケーションの環境構築 Web サーバー (Apache) Web アプリケーションサーバー (Tomcat) Web アプリケーションとは

More information

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX] 開発 運用時のガイド [UNIX] JDK8 への移行に伴う留意点 2015.10 O c t o b e r はじめに 本書は 開発 運用フェーズで使用するドキュメントとして Java TM Development Kit 8 への移行に伴う 留意点について記述しています 1. 対象とする読者本書は Java TM Development Kit 8 を使用し システムを設計 構築 運用する立場にある方を対象としています

More information

Microsoft Word - tutorial3-dbreverse.docx

Microsoft Word - tutorial3-dbreverse.docx 株式会社チェンジビジョン使用バージョン :astah* 6.0, 6.1 [ ] サンプル サポート対象外 目次 DB リバースを使ってみよう ( サンプル サポート対象外 ) 2 ご利用の前に 2 予備知識 2 データベースの環境設定をしてみよう 2 astah* データベースリバースコンポーネントを使用してみよう 5 作成した asta ファイルを astah* professional で開いてみよう

More information

インストールガイド

インストールガイド FUJITSU Software Linkexpress Replication option V5.0L17 インストールガイド Windows B1WD329103Z0(00) 2014 年 12 月 まえがき 本書の目的本書は Linkexpress Replication optionのマニュアルをインストールする方のために インストールの方法を説明しています 対象読者本書は以下の方を対象としています

More information

iStorage NSシリーズ 管理者ガイド

iStorage NSシリーズ 管理者ガイド istorage NS シリーズ 管理者ガイド ( 詳細編 ) 第 3.0 版 2014 年 10 月 商標について Microsoft Windows Windows Server および Windows Vista は米国 Microsoft Corporation の米国および その他の国における登録商標です ESMPRO は日本電気株式会社の商標です Windows Server 2012

More information

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2 第 1 版 改版履歴 版数 改版日付 改版内容 1 2013/03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2 目次 1. 使用しているデータベース (DPMDBI インスタンス ) を SQL Server

More information

Interstage Interaction Manager V9 Oracle Database 11g 適用手順書

Interstage Interaction Manager V9 Oracle Database 11g 適用手順書 Interstage Interaction Manager V9 Oracle Database 11g 適用手順書 はじめに Interstage Interaction Manager V9 ポータル機能は データベースにOracle Database 11gを使用する場合 Oracle Database 10gのJDBCドライバを使用します 本書は 製品マニュアル Interstage Portalworks

More information

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は Micro Focus Server Express 5.1 J for AIX 7.1 IBM WebSphere Application Server 8.0.0.0 動作検証結果報告書 2011 年 11 月 10 日マイクロフォーカス株式会社 Copyright 2011 Micro Focus. All Rights Reserved. 記載の会社名 製品名は 各社の商標または登録商標です

More information

Java EE連携ツール説明書

Java EE連携ツール説明書 Systemwalker Service Quality Coordinator Java EE 連携ツール説明書 Windows/Solaris/Linux J2X1-7674-01Z0(00) 2012 年 4 月 まえがき 本書の位置づけ 本書は Systemwalker Service Quality Coordinator が Interstage Application Server(Java

More information

IM-Mail

IM-Mail IM-Mail Ver.7.1 セットアップガイド 2011/03/09 第 3 版 > 変更年月日変更内容 2010/07/30 初版 2010/11/22 第 2 版 3.2.5 iwp / iaf ver7.2 にインストールした場合 のファイル名を訂正しました 2011/03/09 第 3 版 3.6 注意事項 項目を追加しました 目次 > 1 はじめに...1

More information

OpenRulesモジュール

OpenRulesモジュール 目次目次 Copyright 2014 NTT DATA INTRAMART CORPORATION クイック検索検索 1 Top 目次 1. 改訂情報 2. はじめに 3. 機能 4. システム要件 5. 検証済み環境 6. サードパーティライセンス一覧 7. 著作権および特記事項 2 改訂情報 変更年月 日 2014-09- 01 変更内容 初版 3 はじめに 本書の目的 本書では OpenRules

More information

Java Pet Store 2.0 を WebOTX 上で 動作させる方法 2008 年 9 月 初版 NEC 第二システムソフトウェア事業部 0

Java Pet Store 2.0 を WebOTX 上で 動作させる方法 2008 年 9 月 初版 NEC 第二システムソフトウェア事業部 0 Java Pet Store 2.0 を WebOTX 上で 動作させる方法 2008 年 9 月 初版 NEC 第二システムソフトウェア事業部 0 目次 U1. はじめに U...2 U2. Pet Store 2.0 の特徴 U...3 U2.1 Java EE 5 の活用 U...3 U2.2 動作環境 U...4 U3. GlassFish 上で動作させるための手順 U...6 U3.1 プログラムのインストール

More information

FW APIServer 設定ガイド Version 年 2 月 3 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

FW APIServer 設定ガイド Version 年 2 月 3 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED FW APIServer 設定ガイド Version 1.4 2016 年 2 月 3 日富士通株式会社 i 改訂履歴 改訂 No. 日付 Version 章 No. 項 No. 改訂内容 1 2015/04/14 1.0 - - 新規作成 2 2015/06/02 1.1 3 表内 No.12 の備考欄を追記 3 2015/06/23 1.2 3 メソッドのフォワード先を とする注意事項を追記 4

More information

... 1... 2... 2... 2... 4... 4... 5 HTML/JSP/Servlet... 7 JSP... 7 Servlet... 11 Struts... 15 Struts... 15 Struts... 16... 17... 25 FormBean LoginForm

... 1... 2... 2... 2... 4... 4... 5 HTML/JSP/Servlet... 7 JSP... 7 Servlet... 11 Struts... 15 Struts... 15 Struts... 16... 17... 25 FormBean LoginForm Oracle JDeveloper 10g Struts Creation Date: May 28, 2004 Last Update: Aug 19, 2004 Version 1.0.1 ... 1... 2... 2... 2... 4... 4... 5 HTML/JSP/Servlet... 7 JSP... 7 Servlet... 11 Struts... 15 Struts...

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

Microsoft Word 基_シラバス.doc

Microsoft Word 基_シラバス.doc 4-5- 基 Web アプリケーション開発に関する知識 1 4-5- 基 Web アプリケーション開発に関する知識 スクリプト言語や Java 言語を利用して Ruby on Rails やその他 Web フレームワークを活用して HTML(4, 5) XHTML JavaScript DOM CSS といったマークアップ言語およびスクリプト言語を活用しながら Ⅰ. 概要ダイナミックなWebサービスを提供するアプリケーションを開発する際に

More information

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成 KDDI ホスティングサービス (G120, G200) ブック ASP.NET 利用ガイド ( ご参考資料 ) rev.1.0 KDDI 株式会社 1 ( 目次 ) 1. はじめに... 3 2. 開発環境の準備... 3 2.1 仮想ディレクトリーの作成... 3 2.2 ASP.NET のWeb アプリケーション開発環境準備... 7 3. データベースの作成...10 3.1 データベースの追加...10

More information

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明 システム名称 : ベジフルネットシステム第 3 期 ベジフルネット Ver4 操作説明資料 目次 1. はじめに P1 2. 新機能の操作について (1) マスタ更新機能操作概要 P2 (2) 履歴出力機能操作概要 P6 (3) チェック機能操作概要 P7 (4)CSV 出力機能 P8 3. ベジフルネット Ver4 プログラムのインストール (1) ベジフルネット Ver4 インストール手順 P9

More information

利用者

利用者 Regional SNS 開発環境構築ガイド 2012 年 2 月 29 日 株式会社ネットワーク応用通信研究所 目次 1. はじめに... 1 2. 前提条件... 1 3. 必要なソフトウェア構成... 1 4. ソフトウェアの導入手順... 1 4.1. 必要ファイルのダウンロード... 1 4.2. 環境設定コマンドの実行... 2 4.3. RegionalSNS の実行... 2 4.4.

More information

使用する前に

使用する前に この章では Cisco Secure ACS リリース 5.5 以降から Cisco ISE リリース 2.4 システムへのデー タ移行に使用される Cisco Secure ACS to Cisco ISE Migration Tool について説明します 移行の概要 1 ページ Cisco Secure ACS から データ移行 1 ページ Cisco Secure ACS to Cisco ISE

More information

説明書

説明書 ******************************************************************************** ** ** ** ASCII 範囲外の外部シンボルチェックツール (ASCIICHK) 説明書 ** ** ** ********************************************************************************

More information

intra-mart EX申請システム version.5.3 PDFオプション リリースノート

intra-mart EX申請システム version.5.3 PDFオプション リリースノート ver.5.3 リリース ノート 第二版 2011/3/31 1. システム要件 システム要件 Version.5.3 は以下の製品上で動作します 動作環境については 以下の製品のリリース ノートを参照してください BaseModule Version.5.0 BaseModule Version.5.1 WebPlatform Version.6.0 WebPlatform Version.6.1

More information

Yaskawa Siemens CNC API HMI NCSI-SP02-15

Yaskawa Siemens CNC API HMI NCSI-SP02-15 Yaskawa Siemens CNC API HMI NCSI-SP02-15 安川シーメンス NC 株式会社はシーメンス株式会社に統合の後,2010 年 8 月より シーメンス ジャパン株式会社へ社名を変更いたしました 本書に記載の 安川シーメンス NC 株式会社 などの社名に類する名称は シーメンス ジャパン株式会社 へ読み替えをお願いします 本マニュアルは Yaskawa Siemens 840DI,Yaskawa

More information

SQL Server Integration Services 連携機能編

SQL Server Integration Services 連携機能編 FUJITSU Software Interstage List Creator V10.4.0 SQL Server Integration Services 連携機能編 Windows B1X1-0203-05Z0(00) 2015 年 1 月 まえがき 本書は List Creator が提供する Microsoft SQL Server Integration Services 連携機能のセットアップ方法

More information

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8 OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8 目次 1. はじめに 1 1.1 本文書の目的... 1 1.2 前提条件... 1 1.3 略語...1 2. 事前準備 2 2.1 ホスト名の名前解決... 2 3. Linix 版パッケージ 3 3.1 システム要件... 3 3.1.1

More information

WebOTXマニュアル

WebOTXマニュアル WebOTX アプリケーション開発ガイド WebOTX アプリケーション開発ガイドバージョン : 7.1 版数 : 初版リリース : 2007 年 7 月 Copyright (C) 1998-2007 NEC Corporation. All rights reserved. 付録 4-2-1 目次 4. プログラミング 開発 (WebOTX)...3 4.2. EJBアプリケーション...3 4.2.1.

More information

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat 作成日 :2017/07/06 ******************************************************************************* ** ** ** FUJITSU Cloud Service K5 ** ** ** ** ソフトウェアカフェテリアサービス向けソフトウェア説明書 ** ** Linux 版 ** ** Interstage

More information

目次 第 1 章はじめに... 3 第 2 章ネットワーク設定 DNS の設定 アウトバウンド HTTPS 接続の許可 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール

目次 第 1 章はじめに... 3 第 2 章ネットワーク設定 DNS の設定 アウトバウンド HTTPS 接続の許可 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール Durian 4 Filter インストールマニュアル SYMMETRIC 2011 年 11 月 11 日版 目次 第 1 章はじめに... 3 第 2 章ネットワーク設定... 4 2-1 DNS の設定... 4 2-2 アウトバウンド HTTPS 接続の許可... 4 2-3 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール... 5

More information

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i)

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i) 特許庁アーキテクチャ標準仕様書 ( 参考 ) 処理シーケンスサンプル集 第. 版 平成 28 年 6 月 特許庁 改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i) はじめに () 本書の位置づけ 本書は, 特許庁アーキテクチャ標準仕様書 に基づきシステムの動的な振る舞いを処理シーケンスとして定める際に参考とするサンプル集である

More information

HeartCoreインストールマニュアル

HeartCoreインストールマニュアル HeartCore インストールマニュアル (JSP 版 ) October2013 Ver1.1-1 - 改訂履歴 改訂日 改訂内容 Ver1.0 2013 年 07 月 マニュアル改訂 Ver1.1 2013 年 10 月 フォーマット改訂 - 2 - 目次 1. 本文書の目的と対象...- 4-1.1. 概要説明... - 4-2. インストールの流れ...- 4-3. MySQL ユーザの作成...-

More information

BOM for Windows Ver

BOM for Windows Ver BOM for Windows Ver.5.0 SR2 リリースノート Copyright 2007-2009 SAY Technologies, Inc. All rights reserved. このドキュメントには BOM Ver5.0 SR2 に関する最新情報が記載されています 対応 OS の追加 対応 SP と OS が増えました 機能追加 改良 1.Windows Server 2008

More information

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat 作成日 :2017/07/06 ******************************************************************************* ** ** ** FUJITSU Cloud Service K5 ** ** ** ** ソフトウェアカフェテリアサービス向けソフトウェア説明書 ** ** Linux 版 ** ** Interstage

More information

スライド タイトルなし

スライド タイトルなし 業務システム開発用フレームワーク TERASOLUNA Framework for.net 2008 年 10 月 18 日 ( 土 ) presented by tatsumihr 株式会社 NTT データ技術開発本部立見博史 記載されている会社名 商品名 又はサービス名は 各社の登録商標又は商標です Agenda はじめに TERASOLUNA for.net 概要 デモ まとめ Agenda

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション No 区分実行版 dbsheetclient2013 リリースノート Project Editor 内容 2012/5/29 現在 管理 V 1 新機能 タスクタイプ 参照ブックを開く (62201) に以下の機能を追加しました 1 オープンしたブックのファイル名出力 指定したセルにオープンした Excel ブックのファイル名 ( パスを含む ) を出力します 2 オープンしたブックの上書き保存を許可する

More information

Webアプリケーションでのlog4j利用ガイド

Webアプリケーションでのlog4j利用ガイド Web アプリケーションでの log4j 利用ガイド WebOTX V6.4,6.5 編 NEC 第二システムソフトウェア事業部 2007 年 5 月初版 改版履歴 i 目次 1. はじめに... 1 1.1. 対象読者... 1 1.2. 表記について... 1 2. WebOTXのクラスローダの仕組み... 1 3. WebAPからlog4j 利用手順... 3 3.1. WebAPにlog4jを含める場合...

More information

N Setup card

N Setup card NEC Express5800 シリーズ N8103-142 SAS コントローラソフトウェアユーザーズガイド - 1 - はじめに この度は 弊社製品をお買い求めいただきまして ありがとうございます まず 本製品をご使用される前に 以下の構成品があることを確認してください 項番 コード 指定番号 構成品名 媒体 備考 1 136-174798-142-A N8103-142 SAS Controller

More information

intra-mart FormatCreator Version6.1

intra-mart FormatCreator Version6.1 intra-mart IM-VisualDesigner Version7.1 リリース ノート 第 2 版 2014/05/09 1. はじめに (1) intra-mart IM-VisualDesigner はサーバモジュールとクライアントツールで構成されています (2) intra-mart IM-VisualDesigner サーバモジュールが動作するには /AppFramework Version

More information

IM-SecureSignOn

IM-SecureSignOn IM-SecureSignOn Version 7.2 リリース ノート 2012/02/29 初版 1 はじめに 1. IM-SecureSignOn が動作するには intra-mart WebPlatform/AppFramework Version 7.2 が必要です 最新パッチの適応を推奨します 2. 本ドキュメントは本製品固有の要件を記載しています 以下に記載のないものは intra-mart

More information

V-Client for Mac ユーザーズガイド

V-Client for Mac ユーザーズガイド V-Client for Mac ユーザーズガイド 対応 Ver.3.0.0.1 1. 概要 V-Client を Mac にインストールすることにより 外出先などから V-edge へ接続することができます 2. 対象プラットフォーム macos(sierra 10.12.x, High Sierra 10.13.x, Mojave 10.14.x) 1 V-Client を利用できるようにするため

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

富士通製プラットフォーム 「PRIMEPOWER/PRIMERGY」及び、富士通製ミドルウェア 「Interstage」とVantage Analyzer 動作検証完了報告書

富士通製プラットフォーム 「PRIMEPOWER/PRIMERGY」及び、富士通製ミドルウェア 「Interstage」とVantage Analyzer 動作検証完了報告書 富士通株式会社殿富士通製プラットフォーム PRIMEPOWER / 及び 富士通製ミドルウェア Interstage と Vantage Analyzer 動作検証完了報告書 日本コンピュウェア株式会社 [ 目次 ] 1. 目的 --------------------------------------------------------- 2 2. ハードウェアの構成 ---------------------------------------------------------

More information

更新用証明書インポートツール 操作マニュアル 2011 年 10 月 31 日 セコムトラストシステムズ株式会社 Copyright 2011 SECOM Trust Systems CO.,LTD. All rights reserved. P-1

更新用証明書インポートツール 操作マニュアル 2011 年 10 月 31 日 セコムトラストシステムズ株式会社 Copyright 2011 SECOM Trust Systems CO.,LTD. All rights reserved. P-1 更新用証明書インポートツール 操作マニュアル 20 年 0 月 3 日 セコムトラストシステムズ株式会社 P- 改版履歴 版数 日付 内容 担当 V..00 200/2/27 初版発行 STS V..0 20/0/3 動作条件 ( オペレーティングシステム ブラウザ ) 追加確認ページの手順追加 STS P-2 目次. はじめに... 4 2. 証明書のインポート手順... 5 2.. 契約者番号

More information

Oracle Business Intelligence Standard Edition One のインストール

Oracle Business Intelligence Standard Edition One のインストール Oracle Business Intelligence Standard Edition One のインストール 第 1 版 作成日 :2007 年 7 月 31 日 更新日 :2007 年 7 月 31 日 目次 はじめに... 3 Ⅰ. インストール作業... 4 Ⅱ. 起動状況の確認... 8 Ⅱ-1. Oracle BI Administration Tool の起動... 8 Ⅱ-2.

More information

改版履歴 版数 日付 内容 担当 V /0/27 初版発行 STS V..0 20/03/04 トラブルシューティング改訂 STS P-2

改版履歴 版数 日付 内容 担当 V /0/27 初版発行 STS V..0 20/03/04 トラブルシューティング改訂 STS P-2 更新用証明書インポートツール 操作マニュアル 20 年 3 月 4 日 セコムトラストシステムズ株式会社 P- 改版履歴 版数 日付 内容 担当 V..00 20/0/27 初版発行 STS V..0 20/03/04 トラブルシューティング改訂 STS P-2 目次. はじめに... 4 2. 証明書のインポート手順... 5 2.. 契約者番号 利用者 ID パスワードの準備... 5 2.2.

More information

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows インストールガイド 2018(Jun) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール 本製品のアップデートインストール

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows インストールガイド 2018(Jun) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール 本製品のアップデートインストール CLUSTERPRO MC RootDiskMonitor 2.3 for Windows インストールガイド 2018(Jun) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール 本製品のアップデートインストール 改版履歴 版数 改版 内容 1.0 2015.3 新規作成 2.0 2016.3 Microsoft.NET

More information

intra-mart EX申請システム version.7.2 PDFオプション リリースノート

intra-mart EX申請システム version.7.2 PDFオプション リリースノート intra-mart EX 申請システム ver.7.2 PDF オプション リリース ノート 第一版 2011/2/28 1. システム要件 システム要件 intra-mart EX 申請システム Version.7.2 PDF オプションは以下の製品上で動作します 動作環境については 以下の製品のリリース ノートを参照してください intra-mart WebPlatform Version.7.2

More information

TestDesign for Web

TestDesign for Web 発行日 2012/6/21 発行元 株式会社アープ 本書は Web でのテスト自動化における Test Design の一連の操作方法まとめたものです Test Design のメニューの説明やより詳細な使い方については ユーザーズガイド を参照してください 目次 1. はじめに... 1 2. 環境構築... 2 2.1. Selenium のサイトについて... 2 2.2. Selenium

More information

リリース情報

リリース情報 FUJITSU Software Interstage Business Application Server リリース情報 Windows/Solaris/Linux J2X1-7838-04Z0(00) 2014 年 11 月 まえがき 本書の目的 本書は Interstage Business Application Server リリース情報 です 本書を参照することによって 本製品の今回のバージョン

More information