Top Banner
B1X1-0015-01Z0(00) 200910Windows/Solaris/Linux Interstage Business Application Server V9.2.0 オープンJavaフレームワーク ユーザーズガイド
186

Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文...

Jun 07, 2018

Download

Documents

hanhi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

B1X1-0015-01Z0(00)2009年10月

Windows/Solaris/Linux

Interstage Business Application ServerV9.2.0

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

Page 2: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

まえがき

本書の目的

本書は、“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章 StrutsStrutsを使用したWebアプリケーションの開発について説明します。

第3章 Spring FrameworkSpring Frameworkを使用した業務アプリケーションの開発について説明します。

第4章 iBATISiBATISを使用したデータアクセス層のアプリケーションの開発について説明します。

第5章 TERASOLUNATERASOLUNAを使用したアプリケーションの開発について説明します。

第6章 オープンJavaフレームワークにおけるログ機能の利用

オープンJavaフレームワークにおけるログ機能の利用について説明します。

第7章 標準ログ

サーバアプリケーションの開発における操作について説明します。

第8章 バックアップ・リストアおよびクラスタ

バックアップ・リストアおよびクラスタの利用について説明します。

付録A TERASOLUNAのサンプルアプリケーション

TERASOLUNAアプリケーションのサンプルの作成方法および、動作方法を説明します。

- i -

Page 3: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

付録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(R) XP Professional x64 Edition、Microsoft(R) Windows(R) XP Home Edition、Microsoft(R) Windows(R) XP Professional、Microsoft(R) Windows Vista(R) Ultimate、Microsoft(R) Windows Vista(R) Business、Microsoft(R) Windows Vista(R) Home Premium、

Microsoft(R) Windows Vista(R) Home Basic、および

Microsoft(R) Windows Vista(R) Enterprise

Windows

Microsoft(R) Windows(R) 2000 Advanced Server、Microsoft(R) Windows(R) 2000 Server、および

Microsoft(R) Windows(R) 2000 Professional

Windows 2000

Microsoft(R) Windows(R) XP Professional x64 Edition、Microsoft(R) Windows(R) XP Professional、および

Microsoft(R) Windows(R) XP Home Edition

Windows XP

Microsoft(R) Windows Vista(R) Ultimate、Microsoft(R) Windows Vista(R) Business、Microsoft(R) Windows Vista(R) Home Premium、

Microsoft(R) Windows Vista(R) Home Basic、および

Microsoft(R) Windows Vista(R) Enterprise

Windows Vista

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) WindowsServer(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、

Windows Server 2003またはWindows Server

Microsoft(R) Windows Server(R) 2008 Standard、Microsoft(R) Windows Server(R) 2008 Standard without Hyper-V、

Microsoft(R) Windows Server(R) 2008 Enterprise、

Windows Server 2008またはWindows Server

- ii -

Page 4: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

製品名称 略称

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

Solaris(TM) オペレーティングシステム Solaris

Solaris(TM) 9 オペレーティングシステム Solaris 9

Solaris(TM) 10 オペレーティングシステム Solaris 10

Red Hat Enterprise Linux AS v.4、および

Red Hat Enterprise Linux 5Linux

Java 2 SDK, Standard Edition、および

Java Development KitJDK

Java 2 Runtime Environment, Standard Edition、および

Java Runtime EnvironmentJRE

Oracle Database 10g Standard Edition、および

Oracle Database 10g Enterprise EditionOracle、またはOracle10g

Oracle Database 11g Standard Edition、および

Oracle Database 11g Enterprise EditionOracle、またはOracle11g

Symfoware Server Enterprise Edition 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

Symfoware Server Enterprise Edition 9.0/9.1/10.0、および

Symfoware Server Enterprise Extended Edition 9.0/9.1/10.0

Symfoware Server(注)

Interstage Studio Enterprise Edition 9.2 Interstage Studio

注) Symfoware Serverと、Interstage Business Application Serverに同梱しているSymfoware/RDBとを総称する場合、Symfowareと表記

します。

著作権

Copyright 2009 FUJITSU LIMITED

2009年10月 初版

- iii -

Page 5: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

目 次

第1章 概要................................................................................................................................................................................11.1 Interstage Business Application Serverが提供するオープンJavaフレームワーク..............................................................................11.2 動作環境.............................................................................................................................................................................................1

1.2.1 アプリケーション開発時に必要なソフトウェア..............................................................................................................................11.2.2 アプリケーション実行時に必要なソフトウェア..............................................................................................................................21.2.3 資源要件......................................................................................................................................................................................3

1.3 運用モデル..........................................................................................................................................................................................31.3.1 基本的な構成...............................................................................................................................................................................31.3.2 Spring Frameworkを利用したWeb-AP分散構成........................................................................................................................6

第2章 Struts..............................................................................................................................................................................72.1 Strutsの概要........................................................................................................................................................................................7

2.1.1 Strutsカスタムタグライブラリ..........................................................................................................................................................72.1.2 ActionServlet................................................................................................................................................................................82.1.3 Validator.......................................................................................................................................................................................82.1.4 DataSource....................................................................................................................................................................................82.1.5 国際化対応..................................................................................................................................................................................82.1.6 一貫したログの出力.....................................................................................................................................................................8

2.2 Strutsの環境作成................................................................................................................................................................................82.2.1 IJServerの作成.............................................................................................................................................................................82.2.2 クラスパスの設定..........................................................................................................................................................................92.2.3 アプリケーションの配備................................................................................................................................................................9

2.3 Strutsアプリケーションの開発............................................................................................................................................................102.3.1 Strutsアプリケーションに必要な資材の準備.............................................................................................................................102.3.2 Modelの作成..............................................................................................................................................................................112.3.3 Viewの作成................................................................................................................................................................................132.3.4 Controllerの動作を定義する設定ファイルの作成....................................................................................................................152.3.5 配備記述子(web.xml)の作成....................................................................................................................................................162.3.6 Webアプリケーションの作成......................................................................................................................................................172.3.7 Spring Frameworkとの連携........................................................................................................................................................172.3.8 iBATISとの連携.........................................................................................................................................................................17

2.4 Struts IDEによるStrutsアプリケーションの作成................................................................................................................................172.4.1 基本的な操作.............................................................................................................................................................................172.4.2 Spring Frameworkと連携するアプリケーションの作成..............................................................................................................33

2.5 Strutsの運用・保守............................................................................................................................................................................332.5.1 起動・停止..................................................................................................................................................................................332.5.2 ログ..............................................................................................................................................................................................33

2.6 注意事項...........................................................................................................................................................................................342.7 チューニング......................................................................................................................................................................................352.8 トラブルシューティング......................................................................................................................................................................36

2.8.1 ワークユニット起動時の異常......................................................................................................................................................36

第3章 Spring Framework........................................................................................................................................................373.1 Spring Frameworkの概要..................................................................................................................................................................37

3.1.1 DIコンテナ..................................................................................................................................................................................373.1.2 トランザクション抽象化レイヤ.....................................................................................................................................................383.1.3 JDBC抽象化レイヤ.....................................................................................................................................................................383.1.4 O/Rマッピング連携.....................................................................................................................................................................383.1.5 AOP............................................................................................................................................................................................383.1.6 MVCフレームワーク...................................................................................................................................................................393.1.7 JTAによるトランザクション制御機能..........................................................................................................................................393.1.8 IJServer間連携...........................................................................................................................................................................393.1.9 Symfowareのエラーコードに対応したJDBCサポート機能.......................................................................................................403.1.10 一貫したログの出力.................................................................................................................................................................40

3.2 Spring Frameworkの環境作成..........................................................................................................................................................40

- iv -

Page 6: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3.2.1 IJServerの作成...........................................................................................................................................................................403.2.2 クラスパスの設定........................................................................................................................................................................403.2.3 アプリケーションの配備..............................................................................................................................................................41

3.3 Spring Frameworkアプリケーションの開発.......................................................................................................................................413.3.1 AP層の作成................................................................................................................................................................................423.3.2 Web層の作成.............................................................................................................................................................................453.3.3 定義ファイルの作成...................................................................................................................................................................473.3.4 リモート機能によるIJServer間連携............................................................................................................................................503.3.5 Symfowareのエラーコードに対応した例外クラス......................................................................................................................573.3.6 Strutsとの連携.............................................................................................................................................................................583.3.7 iBATISとの連携.........................................................................................................................................................................65

3.4 Spring IDEによるSpring Frameworkアプリケーションの作成..........................................................................................................653.4.1 基本的な操作.............................................................................................................................................................................653.4.2 Strutsと連携するアプリケーションの作成...................................................................................................................................82

3.5 Spring Frameworkの運用・保守........................................................................................................................................................883.5.1 起動・停止..................................................................................................................................................................................883.5.2 ログ..............................................................................................................................................................................................883.5.3 複数IJServerによる分離型での運用.........................................................................................................................................89

3.6 注意事項...........................................................................................................................................................................................913.6.1 Spring FrameworkアプリケーションでJTAを利用する場合の注意事項...................................................................................913.6.2 Spring Frameworkアプリケーション作成時の注意事項............................................................................................................92

3.7 チューニング......................................................................................................................................................................................923.8 トラブルシューティング......................................................................................................................................................................92

3.8.1 アプリケーション配備時の異常..................................................................................................................................................923.8.2 ワークユニット起動時の異常......................................................................................................................................................923.8.3 アプリケーション実行時の異常..................................................................................................................................................92

第4章 iBATIS..........................................................................................................................................................................944.1 iBATISの概要...................................................................................................................................................................................94

4.1.1 O/Rマッピング.............................................................................................................................................................................954.1.2 コネクション管理.........................................................................................................................................................................954.1.3 トランザクション管理...................................................................................................................................................................964.1.4 一貫したログの出力...................................................................................................................................................................96

4.2 iBATISの環境作成...........................................................................................................................................................................964.2.1 データベース接続の設定..........................................................................................................................................................964.2.2 IJServerの作成...........................................................................................................................................................................964.2.3 クラスパスの設定........................................................................................................................................................................974.2.4 アプリケーションの配備..............................................................................................................................................................97

4.3 iBATISアプリケーションの開発........................................................................................................................................................974.3.1 iBATISの基本設計....................................................................................................................................................................984.3.2 iBATISアプリケーションに必要な設定ファイルの作成............................................................................................................984.3.3 iBATISアプリケーションの実行クラスの作成(Spring Frameworkと連携しない場合)...........................................................1014.3.4 Strutsとの連携...........................................................................................................................................................................1024.3.5 Spring Frameworkとの連携......................................................................................................................................................102

4.4 iBATISの運用・保守.......................................................................................................................................................................1044.4.1 起動・停止................................................................................................................................................................................1044.4.2 ログ............................................................................................................................................................................................104

4.5 注意事項.........................................................................................................................................................................................1054.5.1 データベース固有の注意点....................................................................................................................................................105

4.6 チューニング....................................................................................................................................................................................1064.7 トラブルシューティング....................................................................................................................................................................106

4.7.1 アプリケーション実行時の異常................................................................................................................................................106

第5章 TERASOLUNA...........................................................................................................................................................1075.1 TERASOLUNAの概要...................................................................................................................................................................107

5.1.1 提供機能..................................................................................................................................................................................1075.1.2 システムモデル.........................................................................................................................................................................108

5.2 TERASOLUNAの環境作成...........................................................................................................................................................109

- v -

Page 7: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

5.2.1 IJServerの作成.........................................................................................................................................................................1105.2.2 クラスパスの設定......................................................................................................................................................................1105.2.3 ワークマネージャの設定(TERASOLUNA-Batchのみ).........................................................................................................1125.2.4 TERASOLUNAフレームワークが出力するログの設定..........................................................................................................113

5.3 TERASOLUNAの開発...................................................................................................................................................................1135.3.1 ブランクプロジェクトのインポート..............................................................................................................................................1135.3.2 ファイルパスの修正..................................................................................................................................................................1145.3.3 データベースの設定................................................................................................................................................................1145.3.4 TERASOLUNAアプリケーションが出力するログの設定........................................................................................................1165.3.5 アプリケーションの開発............................................................................................................................................................1165.3.6 ワークマネージャのスレッドプールサイズの調整 (TERASOLUNA-Batch)...........................................................................1175.3.7 配備アプリケーションの変更手順............................................................................................................................................1185.3.8 デバッグ方法............................................................................................................................................................................118

5.4 TERASOLUNAの運用・保守.........................................................................................................................................................1185.4.1 起動・停止................................................................................................................................................................................1185.4.2 ログ............................................................................................................................................................................................1185.4.3 異常発生時の対処...................................................................................................................................................................118

5.5 注意事項.........................................................................................................................................................................................1185.5.1 共通の注意事項.......................................................................................................................................................................1185.5.2 TERASOLUNA Batch Framework for Java使用時の注意事項............................................................................................118

5.6 チューニング....................................................................................................................................................................................1195.6.1 TERASOLUNA Batch Framework for Javaのチューニング...................................................................................................119

5.7 トラブルシューティング....................................................................................................................................................................1215.7.1 TERASOLUNA Batch Framework for Javaのトラブルシューティング...................................................................................121

第6章 オープンJavaフレームワークにおけるログ機能の利用..................................................................................................1226.1 commons-logging API仕様に準拠したログ機能............................................................................................................................122

6.1.1 commons-logging API仕様に準拠したログ機能の概要.........................................................................................................1226.1.2 commons-logging API仕様に準拠したログ機能の環境作成.................................................................................................1226.1.3 アプリケーションログの出力レベルについて...........................................................................................................................125

6.2 ログ機能の利用方法.......................................................................................................................................................................1266.2.1 commons-logging APIを用いてログ出力する.........................................................................................................................1266.2.2 LogComposerクラスを用いてログを出力する..........................................................................................................................1266.2.3 ExtMessageComposerクラスを用いてログを出力する.............................................................................................................1276.2.4 ExtDataComposerクラスを用いてログを出力する...................................................................................................................1286.2.5 ExtTimeComposerクラスを用いてログを出力する...................................................................................................................1296.2.6 ULogComposerクラスを用いてログを出力する.......................................................................................................................131

6.3 注意事項.........................................................................................................................................................................................1366.4 トラブルシューティング....................................................................................................................................................................136

第7章 標準ログ......................................................................................................................................................................1397.1 標準ログの概要...............................................................................................................................................................................1397.2 標準ログの定義...............................................................................................................................................................................1397.3 標準ログの出力レベル....................................................................................................................................................................1417.4 サブシステム名................................................................................................................................................................................1427.5 標準ログの基本フォーマット...........................................................................................................................................................1437.6 標準ログのメッセージ本文..............................................................................................................................................................144

7.6.1 システムログ..............................................................................................................................................................................1447.6.2 性能ログ....................................................................................................................................................................................147

7.7 注意事項.........................................................................................................................................................................................1507.8 トラブルシューティング....................................................................................................................................................................150

第8章 バックアップ・リストアおよびクラスタ..............................................................................................................................1518.1 バックアップ・リストア資源の一覧....................................................................................................................................................1518.2 バックアップの手順..........................................................................................................................................................................151

8.2.1 アプリケーションサーバの停止................................................................................................................................................1518.2.2 アプリケーションサーバ環境資源のバックアップ....................................................................................................................1518.2.3 アプリケーションサーバの起動................................................................................................................................................152

- vi -

Page 8: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

8.3 リストアの手順..................................................................................................................................................................................1528.3.1 アプリケーションサーバの停止................................................................................................................................................1528.3.2 アプリケーションサーバ環境資源のリストア.............................................................................................................................1528.3.3 アプリケーションサーバの起動................................................................................................................................................152

8.4 クラスタ構成.....................................................................................................................................................................................152

付録A TERASOLUNAのサンプルアプリケーション................................................................................................................. 153A.1 サンプルの導入方法......................................................................................................................................................................153A.2 TERASOLUNA Server Framework for Java (Web版)のサンプル...............................................................................................153

A.2.1 サンプルの構成.......................................................................................................................................................................153A.2.2 動作方法..................................................................................................................................................................................155

A.3 TERASOLUNA Server Framework for Java (Rich版)のサンプル...............................................................................................156A.3.1 サンプルの構成.......................................................................................................................................................................156A.3.2 動作方法..................................................................................................................................................................................158

A.4 TERASOLUNA Batch Framework for Javaのサンプル................................................................................................................159A.4.1 サンプルの作成方法...............................................................................................................................................................159A.4.2 サンプルの動作方法...............................................................................................................................................................164

付録B 謝辞、免責文、ライセンス文.........................................................................................................................................167B.1 Apache Licenseのライセンス文.......................................................................................................................................................167B.2 AspectJのライセンス文....................................................................................................................................................................172B.3 Spring IDEのライセンス文..............................................................................................................................................................174B.4 ASMのライセンス文........................................................................................................................................................................177

- vii -

Page 9: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第1章 概要

1.1 Interstage Business Application Serverが提供するオープンJavaフレームワーク

Interstage Business Application Serverは、オープンソースのフレームワークとして人気のあるStruts、Spring Framework、iBATIS、そし

てそれらを統合した汎用フレームワークであるTERASOLUNAを提供します。

各フレームワークについて以下に説明します。

・ StrutsWebアプリケーションに、Model、View、ControllerのMVC構造を適用して、Webアプリケーションの開発を容易にするフレームワー

クです。

・ Spring FrameworkDI(Dependency Injection)機能やAOP(Aspect Oriented Programming)により、POJO(Plain Old Java Object)クラスを組み合わせ

てアプリケーションを作成することを可能にして、業務アプリケーションの開発を容易にするフレームワークです。

・ iBATISJavaオブジェクトとRDBのデータ構造の違いを吸収してマッピング(O/Rマッピング)することにより、データアクセス層のアプリケー

ションの開発を容易にするフレームワークです。

・ TERASOLUNAStruts、Spring Framework、iBATISを統合した汎用フレームワークです。Webアプリケーション向け、リッチクライアント向け、バッチ

アプリケーション向けのフレームワークがあります。

Struts、Spring Framework、iBATISのオリジナルのマニュアルおよびjavadocは、Interstage Business Application Serverのマニュアル

CD-ROM内に格納されています。

TERASOLUNAのマニュアルについては、下記のサイトを参照してください。

( http://sourceforge.jp/projects/terasoluna/ )

一貫したログの出力

Interstage Business Application Serverでは、上記のフレームワークを組み合わせた際に、1つのリクエストに対して1つの“コンテキスト

ID”を紐付けてログを出力することができます。各フレームワークが出力するログに一貫して同じIDがついているため、どのリクエストの

処理がどのような処理ルートを実行したかをログから判別することができます。詳細は、“第7章 標準ログ”を参照してください。

1.2 動作環境

1.2.1 アプリケーション開発時に必要なソフトウェア

アプリケーション開発時に必要なソフトウェアについて説明します。

■アプリケーション開発環境

項番 機能名 製品名 バージョン・レベル

1 オープンJavaフレームワークを利用し

たアプリケーションの開発(注1)Interstage Studio Enterprise Edition (注2) 9.2.0

注1)

Spring FrameworkのIJServer連携機能を使用する場合は、CORBAサービスクライアントおよびCORBAサービスディベロップメント

ツールをインストールする必要があります。

また、JNDIを使用するアプリケーションを作成する場合は、CORBAサービスまたはCORBAサービスクライアントをインストールする

必要があります。

注2)

Java EEワークベンチは使用できません。

- 1 -

Page 10: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■データベース関連

アプリケーション開発に必要なデータベース関連のソフトウェアついては、“1.2.2 アプリケーション実行時に必要なソフトウェア”の“■

データベース関連”を参照してください。

1.2.2 アプリケーション実行時に必要なソフトウェア

アプリケーション実行時に必要なソフトウェアについて説明します。

■Java実行環境

項番 機能名 製品名 バージョン・レベル

1 オープンJavaフレームワークを利用し

たアプリケーション

本製品が提供するアプリケーションサーバのIJServer(J2EE) (注1)

-

注1)

対応するJDKのバージョンは5.0です。V8互換モードのIJServerは使用できません。

■データベース関連

サポート対象のデータベースは各JDBCドライバのマニュアルを参照してください。

Symfowareを使用したアプリケーションを運用する場合

項番 プラットフォーム サポートするJDBCドライバ バージョン・レベル

1 Windows(R) Symfoware Server クライアント機能 9.0.0以降

2 Solaris Symfoware Server クライアント機能 9.0.0以降

3 RHEL-AS4(x86)/AS4(EM64T) Symfoware Server クライアント機能 9.0.0以降

4 RHEL5(x86)/(Intel64) Symfoware Server クライアント機能 9.0.0以降

5 RHEL-AS4(IPF) Symfoware Server クライアント機能 9.0.0以降

6 RHEL5(IPF) Symfoware Server クライアント機能 9.0.0以降

注)

iBATISの一部の機能において、Symfoware Serverのバージョン・レベル10.0.0以上で提供されるJDBCドライバの機能が必要で

す。詳細は“第4章 iBATIS”の“4.5.1 データベース固有の注意点”を参照してください。

Oracleを使用したアプリケーションを運用する場合

項番 プラットフォーム サポートするJDBCドライバ バージョン・レベル

1 Windows(R) Oracle JDBC Driver 10.2.0または11.1

2 Solaris Oracle JDBC Driver 10.2.0または11.1

3 RHEL-AS4(x86)/AS4(EM64T) Oracle JDBC Driver 10.2.0または11.1

4 RHEL5(x86)/(Intel64) Oracle JDBC Driver 10.2.0または11.1

5 RHEL-AS4(IPF) Oracle JDBC Driver 10.2.0

6 RHEL5(IPF) Oracle JDBC Driver 10.2.0

注)

Oracle JDBC Driverのバージョンが11.1.0.6以前の場合、ConnectionEventListenerが未実装です。このため、以下の機能を使用す

ると誤動作する場合があります。以下の機能を使用する場合には、 10.2.0のOracle JDBC Driverを使用するか、

ConnectionEventListenerが実装されている修正パッチを、Oracle製品のSupportDesk契約に基づいて、SupportDeskから入手して

適用してください。

- 2 -

Page 11: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

-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

注)

分散トランザクション機能を使用する場合は、使用できません。

1.2.3 資源要件

IPC資源

オープンJavaフレームワークでは、IPC資源を使用していないため、IPC資源のチューニングの考慮の必要はありません。

1.3 運用モデル

1.3.1 基本的な構成

オープンJavaフレームワークを使用する場合の基本的な構成について説明します。

基本的な構成は、以下の8パターンがあります。

項番 パターン 説明 選択のポイント

1 Strutsだけを使用する構

Strutsを使用したWebアプリケーション

の構成です。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

ビジネスロジックの規模が小さい場合に選択します。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。

2 Spring Frameworkだけ

を使用する構成

プレゼンテーション層にSpring-MVC機能を使用して、ビジネスロジック層で

Spring FrameworkのDI機能やAOP機能を利用する構成です。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

データベースのテーブル構造が単純でiBATISのO/Rマッピング機能が必要ない場合に選択します。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。

- 3 -

Page 12: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

項番 パターン 説明 選択のポイント

3 iBATISだけを使用する

構成

iBATISのO/Rマッピング機能だけを

使用する構成です。

Webコンテナ、Web+EJBコンテナ、お

よびEJBコンテナ上で動作します。

プレゼンテーション層をStrutsやSpring Frameworkを使用せずにユーザ独自で作成した場合や、EJBのSessionBeanからiBATISのO/Rマッピング機能を使用

する場合などに選択します。

データベースコネクションはJNDIで取得し、アプリケー

ションサーバが管理する形態を推奨します。

一貫したログは使用できません。

4 StrutsとSpringFrameworkを使用する

構成

プレゼンテーション層にStrutsを使用

して、ビジネスロジック層でSpringFrameworkのDI機能やAOP機能を利

用する構成です。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

上記1の構成で作成したアプリケーションから、ビジネ

スロジックに拡張性をもたせるようにしたい場合に選

択します。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。

5 StrutsとiBATISを使用

する構成

プレゼンテーション層でStrutsを使用

し、データベースのアクセスにiBATISの機能を使用する構成です。図1.1StrutsとiBATISを使用する構成。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

純粋なビジネスロジックが少なく、画面表示とデータ

ベースアクセスが大半を占めるようなアプリケーション

の場合に選択します。

データベースコネクションはJNDIで取得し、アプリケー

ションサーバが管理する形態を推奨します。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。

6 Struts、SpringFramework、および

iBATISを使用する構成

プレゼンテーション層でStruts、ビジネ

スロジック層でSpring FrameworkとiBATISの機能を使用する構成です。

図1.2 Struts、Spring Framework、およ

びiBATISを使用する構成。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

拡張性を考慮して、ビジネスロジックと画面表示、およ

びデータベースアクセスを分離する場合に選択しま

す。

Spring Frameworkでデータベースコネクション管理、

トランザクション管理を一括で管理することができま

す。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。

7 Spring FrameworkとiBATISを使用する構成

上記6の構成において、Strutsの代わ

りにSpring-MVC機能を使用する構成

です。図1.3 Spring FrameworkとiBATISを使用する構成。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

拡張性を考慮して、ビジネスロジックと画面表示、およ

びデータベースアクセスを分離する場合に選択しま

す。

上記6の構成とは同等の機能のため、開発者のスキ

ルセットによって選択してください。

Spring Frameworkでデータベースコネクション管理、

トランザクション管理を一括で管理することができま

す。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。

8 TERASOLUNAを使用

する構成

上記5の構成を、TERASOLUNAフ

レームワークを介して使用する構成で

す。図1.4 TERASOLUNAを使用する

構成。

WebコンテナまたはWeb+EJBコンテ

ナ上で動作します。

拡張性を考慮して、ビジネスロジックと画面表示、およ

びデータベースアクセスを分離する場合、また、バッ

チアプリケーションの開発を行う場合に選択します。

Struts、Spring Framework、iBATISに加え、

TERASOLUNAが提供するWebアプリケーション、リッ

チクライアントアプリケーションおよびバッチアプリケー

ションのための部品を利用することができます。

Interstage Business Application Serverにおける機能

拡張である一貫したログを使用することができます。(注1)

注1)

TERASOKUNAフレームワーク層では一貫したログの出力は行いません。TERASOLUNAから呼び出されるStruts、Spring FrameworkおよびiBATISの層で出力されます。

- 4 -

Page 13: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図1.1 StrutsとiBATISを使用する構成

図1.2 Struts、Spring Framework、およびiBATISを使用する構成

図1.3 Spring FrameworkとiBATISを使用する構成

- 5 -

Page 14: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図1.4 TERASOLUNAを使用する構成

StrutsとiBATISを連携させる方法については、“第4章 iBATIS”の“4.3.4 Strutsとの連携”を参照してください。

StrutsとSpring Frameworkを連携させる方法については、“第3章 Spring Framework”の“3.3.6 Strutsとの連携”を参照してください。

Spring FrameworkとiBATISを連携させる方法については、“第3章 Spring Framework”の“3.3.7 iBATISとの連携”および“第4章iBATIS”の“4.3.5 Spring Frameworkとの連携”を参照してください。

1.3.2 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 -

Page 15: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第2章 Struts

2.1 Strutsの概要

StrutsとはWebアプリケーションのオープンソースフレームワークです。Strutsを利用することにより、Webアプリケーションの開発効率を

高める事が期待できます。

主な機能は以下の通りです。

・ Strutsカスタムタグライブラリ

・ ActionServlet

・ Validator

・ DataSource

・ 国際化対応

本製品で提供するStrutsは、以下の機能を追加提供します。

・ 一貫したログの出力

Struts 1.2.9が提供する機能と、本製品に含まれるStrutsが提供する機能を記載します。

機能名 Struts 1.2.9 本製品で提供するStruts

Strutsカスタムタグライブラリ ○ ○

ActionServlet ○ ○

Validator ○ ○

DataSource △(注) △(注)

国際化対応 ○ ○

一貫したログの出力 × ○

注)Struts 1.2.9では非推奨です。

2.1.1 Strutsカスタムタグライブラリ

処理の分岐や繰り返し、エラー処理などJSPでよく利用される機能をカスタムタグとして提供しています。

カスタムタグを利用する事により、JSP内に存在していたJavaコードをHTMLと同様のタグに置き換える事ができるため、JSPの可読性が

向上します。

Strutsでは以下のカスタムタグを提供しています。

・ htmlフォームなどの各HTMLタグを代替し、Strutsと連動した処理を提供します。

・ logic条件分岐や繰り返し、値の比較などの制御ロジックをタグ化します。

・ beanリクエストデータや業務オブジェクトの他に、HTTPヘッダやクッキーのような不可視のリクエストデータへのアクセス手段も提供しま

す。

・ nested上記3タグの記述を簡略化する機能を提供します。

同一オブジェクトにアクセスする際の冗長な記述を改善する事ができます。

・ tiles画面をヘッダ、メニュー、コンテンツなどの部分に分割し、これらを組み合わせる事によって画面を構成する機能。各部分の再利

用性を高める事ができます。

- 7 -

Page 16: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2.1.2 ActionServletStruts唯一のサーブレットで、Strutsランタイムの動作を指定する設定ファイルの内容に従い、入出力データの振り分けや画面遷移の

制御を引き受けます。

Strutsアプリケーションにおいては、このActionServletのおかげで、MVCのうちControllerの記述を限りなく省力化する事が可能になり、

ModelとViewのアプリケーション固有の機能開発に専念する事が可能になります。

2.1.3 Validatorクライアントからの入力データを検証設定ファイルに定義した検証対象、検証内容、エラーメッセージなどの条件に従って検証処理を

行います。

Validatorでは、予め必須チェック、文字列長チェック、正規表現チェック、データ型チェック、数値範囲チェックなどが提供されており、

検証設定ファイルを用意するだけで、これらの機能を利用することができます。

また、開発者が適宜必要に応じて拡張できる柔軟性も持ち合わせています。

2.1.4 DataSourceStrutsランタイムの動作を指定する設定ファイルへアプリケーションが利用する個々のデータソースの情報を定義する事によって、

java.sql.DataSourceオブジェクトとして利用する事が可能になります。

初期のStrutsでは標準的なDB接続方法でしたが、現在ではデータベース処理とビジネスロジックを分離する目的のため、Strutsが管理する

DataSourceではなく、アプリケーションサーバが管理するDataSourceを利用する事が推奨されています。

2.1.5 国際化対応

Strutsでは国や言語に合わせた資材を用意する事で、クライアントのロケール情報を解析し、適切な資材を自動的に選択する機能を

提供します。

共通で利用できる部分と言語固有の部分を分けて開発できるため、アプリケーションの再利用性を高める事ができます。

2.1.6 一貫したログの出力

本製品で提供するStrutsでは、一連のアプリケーションはコンテキストIDと呼ばれる識別情報に関連付けられます。

ログファイルにコンテキストIDを付加してログメッセージを出力する事によって、一連のアプリケーションが出力したログを選定する事が

できます。

本機能の詳細については、“第7章 標準ログ”を参照してください。

2.2 Strutsの環境作成

Strutsを利用するためには、以下の手順で環境を作成します。

・ IJServerの作成

・ クラスパスの設定

・ Strutsアプリケーションの配備

2.2.1 IJServerの作成

Strutsアプリケーションを動作させるために必要なIJServerを作成します。

◆IJServerの作成

Interstage管理コンソールを使用して、IJServerワークユニットを作成します。

・ [システム] > [ワークユニット] > [新規作成]タブ

- 8 -

Page 17: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

Strutsアプリケーションでは、IJServerのタイプ“EJBアプリケーションのみ運用”は利用できません。

2.2.2 クラスパスの設定

IJServerのクラスパスへログ機能が動作するために必要なjarファイルを設定します。

◆クラスパスの設定

Interstage管理コンソールを使用して、IJServerワークユニットでログ機能が動作するために必要なjarファイルをクラスパスへ設定しま

す。

・ [システム] > [ワークユニット] > “ワークユニット名” > [環境設定]タブ

以下のjarファイルを設定します。

[Interstageのインストールディレクトリ]\BAS\struts12\lib\struts12.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-beanutils-1.8.0.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-digester-1.8.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-logging-1.1.1.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-1.8.0.jar

/opt/FJSVibs/lib/commons-digester-1.8.1.jar

/opt/FJSVibs/lib/commons-logging-1.1.1.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

2.2.3 アプリケーションの配備

作成したIJServerへ、Strutsアプリケーションを配備します。

◆アプリケーションの配備操作

Interstage管理コンソールを使用して、IJServerワークユニットへStrutsアプリケーションファイルを配備します。

・ [システム] > [ワークユニット] > “ワークユニット名” > [配備]タブ

- 9 -

Page 18: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2.3 Strutsアプリケーションの開発

本項では、Strutsアプリケーションの開発の手順を説明します。

・ Strutsアプリケーションに必要な資材の準備

・ Modelの作成

・ Viewの作成

・ Controllerの動作を定義する設定ファイルの作成

・ 配備記述子(web.xml)の作成

・ Webアプリケーションの作成

・ Spring Frameworkとの連携

・ iBATISとの連携

Interstage Studio上におけるStrutsアプリケーション開発用プロジェクトの作成方法については、“2.4 Struts IDEによるStrutsアプリケー

ションの作成”を参照してください。

2.3.1 Strutsアプリケーションに必要な資材の準備

必要なjarファイル一覧

Strutsアプリケーションで必要となるjarファイルは以下の通りです。

jarファイル名 機能概要

struts12.jar strutsランタイム一式

apfwlogging.jar 標準ログの出力で使用

uji.jar ログ機能の既定機能を利用するために使用

ujief.jar シスログ、またはイベントログを利用するために使用

ujilog.jar ログ機能の拡張機能を利用するために使用

apfwutils50.jar 共通ユーティリティの機能を利用するために使用

commons-beanutils-1.8.0.jar Formへの入力値をJavaBeanに格納する機能で使用

commons-digester-1.8.1.jar struts設定ファイルの解析で使用

commons-logging-1.1.1.jar commons-digesterが使用

commons-fileupload-1.2.10.jar ファイルアップロード機能を使用する場合に必要

commons-validator-1.3.1.jar プラグイン検証機能を使用する場合に必要

antlr-2.7.7.jar プラグイン検証機能を使用する場合に必要

jakarta-oro-2.0.8.jar プラグイン検証機能を使用する場合に必要

jarファイルの格納先

本製品が提供するStrutsのjarファイルは以下に格納されています。

[Interstageのインストールディレクトリ]\BAS\struts12\lib\

- 10 -

Page 19: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

/opt/FJSVibs/struts12/lib/

2.3.2 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 ) {

- 11 -

Page 20: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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( );

- 12 -

Page 21: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

eaf.setName( name + ", hello." );

// (2)

return (mapping.findForward( "result" ));

}

}

(1) 業務ロジックの実装

executeメソッドをオーバライドして、ユーザの業務ロジックを実装します。

(2) 処理結果の遷移先を返却

処理結果として出力する遷移先(Struts設定ファイルで定義したforwardタグ)を指定します。

2.3.3 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="http://struts.apache.org/tags-html" prefix="html" %>

<html>

<body>

- 13 -

Page 22: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<!-- (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="http://struts.apache.org/tags-bean" 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カスタムタグライブラリを使用する場合に記述します。

- 14 -

Page 23: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

(2) ActionFormにアクセス

カスタムタグを介して、ActionFormに格納されている値を出力します。

2.3.4 Controllerの動作を定義する設定ファイルの作成

ユーザは定義ファイル(Struts設定ファイル)で動作内容の指示を行います。

このStruts設定ファイルの定義内容に従い、ControllerはリクエストURLごとに処理の振り分け、Actionクラスの処理結果に応じた遷移

先の呼び出し、例外発生時の対応などを行います。

(struts-config.xml)

<!-- (1) -->

<!DOCTYPE struts-config PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

"http://struts.apache.org/dtds/struts-config_1_2.dtd">

<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

- 15 -

Page 24: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

処理結果を表示するページのパスを定義します。

2.3.5 配備記述子(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"

"http://java.sun.com/dtd/web-app_2_3.dtd">

<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ランタイムの活性化が行われるようになります。

- 16 -

Page 25: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

本要素を省略した場合、アプリケーションが正常に動作しない場合があるため、必ず指定してください。

(3) servlet-mapping

Strutsアプリケーションが呼び出されるURLパターンを指定します。

URLパターンは任意の値が使用できます。

2.3.6 Webアプリケーションの作成

以上までの手順でStrutsアプリケーションに必要な資材の作成が完了しましたので、Webアプリケーションとして配備するためにWARファイルを作成します。

WARファイルの作成方法、IJServerへの配備方法などについては、“Interstage Application Server / Interstage Web Server J2EE ユー

ザーズガイド”を参照してください。

Strutsアプリケーションの資材配置

Webアプリケーションと同様のディレクトリ構成に、Strutsアプリケーションに必要な資材を配置します。

WARファイルにまとめる

上記の通りに資材を配置し終わったら、Webアプリケーションとして配備するためにWARとして固めます。

以上が、Strutsアプリケーションの開発工程となります。

2.3.7 Spring Frameworkとの連携

Spring Frameworkと連携する際は、“第3章 Spring Framework”の“3.3.6 Strutsとの連携”を参照してください。

2.3.8 iBATISとの連携

iBATISと連携する際は、“第4章 iBATIS”の“4.3.4 Strutsとの連携”を参照してください。

2.4 Struts IDEによるStrutsアプリケーションの作成

2.4.1 基本的な操作

本章では、Struts IDEの基本的な操作について説明します。

■Strutsサポートの追加

Struts IDEを使用して、WebアプリケーションプロジェクトにStrutsサポートを追加する手順を以下に示します。

1. Interstage Studio V9.2でWebアプリケーションプロジェクトを作成します。

2. Struts IDEの[Strutsサポート]ウィザードを使用して、作成されたWebアプリケーションプロジェクトにStrutsサポートを追加します。

◆Webアプリケーションプロジェクトの作成

Webプロジェクトの作成手順の詳細については、“Interstage Studio ユーザーズガイド”を参照してください。

- 17 -

Page 26: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

◆[Strutsサポート]ウィザードの操作手順

1. 作成されたWebアプリケーションプロジェクトを選択して、[ファイル] > [新規] > [その他]から[Struts IDE] > [Struts] > [Strutsサポー

トの追加]を選択すると、[ウィザードを選択]画面に移行します。

- 18 -

Page 27: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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-1.8.0.jar

- commons-collections-3.2.1.jar

- commons-digester-1.8.1.jar

- commons-fileupload-1.2.1.jar

- commons-logging-1.1.1.jar

- commons-validator-1.3.1.jar

- 19 -

Page 28: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

- jakarta-oro-2.0.8.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" "http://

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">

- 20 -

Page 29: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<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"

"http://java.sun.com/dtd/web-app_2_3.dtd">

<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>

- 21 -

Page 30: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<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>http://java.sun.com/jstl/core</taglib-uri>

<taglib-location>/WEB-INF/c.tld</taglib-location>

</taglib>

<taglib>

- 22 -

Page 31: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>

<taglib-location>/WEB-INF/fmt.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>

<taglib-location>/WEB-INF/sql.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>

<taglib-location>/WEB-INF/x.tld</taglib-location>

</taglib>

-->

</web-app>

- 23 -

Page 32: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3. [次へ(N)>]をクリックすると、[プラグインの設定]画面に移行します。

- Validatorプラグインを使用する

[Validatorプラグインを使用する]チェックボックスにチェックを入れると、以下のファイルを自動で追加します。

- validation.xml

- validator-rules.xml

- Tilesプラグインを使用する

[Tilesプラグインを使用する]チェックボックスにチェックを入れると、以下のファイルを自動で追加します。

- tiles-defs.xml

- 24 -

Page 33: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

4. [終了(F)]をクリックすると、カレントのWebアプリケーションプロジェクト配下にはStrutsエレメント付きのファイルが生成されます。

Strutsサポートを追加した後のプロジェクトディレクトリ構成を以下に示します。

■Struts Actionファイルの作成

Struts IDEを使用して、Actionクラスを自動生成する手順を以下に示します。

- 25 -

Page 34: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 26 -

Page 35: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2. [次へ(N)>]をクリックすると、Actionクラスの作成画面に移行します。

Actionクラスが所属するパッケージを選択して、[名前(M)]にActionクラスの名前を入力します。

3. [終了(F)]をクリックすると、Struts Actionクラスが生成されます。

作成されたActionクラスは“org.apache.struts.action.Action”を継承します。

■Struts ActionFormファイルの作成

Struts IDEを使用して、ActionFormクラスを自動生成する手順を以下に示します。

- 27 -

Page 36: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 28 -

Page 37: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2. [次へ(N)>]をクリックすると、ActionFormクラスの作成画面に移行します。

ActionFormクラスの作成画面において、ActionFormクラスが所属するパッケージを選択して、[名前(M)]にActionFormクラスの

名前を入力します。

3. [終了(F)]をクリックすると、ActionFormクラスが生成されます。

作成されたActionFormクラスは“org.apache.struts.action.ActionForm”を継承します。

■Struts JSPファイルの作成

Struts IDEはStruts JSPファイルを生成する機能を提供します。手順を以下に示します。

- 29 -

Page 38: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 30 -

Page 39: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 31 -

Page 40: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

- 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エレメントは、[プロパティ]ビューにて変更できます。

- 32 -

Page 41: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ [アウトライン]ビュー

- グラフィカルエディタで設計されたStrutsエレメントの情報および各エレメント間の関係は、[アウトライン]ビューにて階層的に表

示できます。

- [アウトライン]ビューにおいては、Strutsエレメントが追加、削除できます。[アウトライン]ビューにおける操作結果は、[フロー]タブと

[ソース]タブにおいても同時に反映できます。

・ [ソース]タブ

- [ソース]タブにおいては、struts-config.xmlファイルのXMLソースが直接に編集できます。編集結果は、[フロー]タブと[アウトラ

イン]ビューにおいても同時に反映できます。

- struts-config.xmlの内容にエラーがある場合、[問題]ビューにエラーの位置と内容が表示されます。また、[ソース]タブの該当

行にもマーカが表示されます。[問題]ビューでエラー内容をクリックすると、[ソース]タブの該当行にジャンプすることができま

す。

2.4.2 Spring Frameworkと連携するアプリケーションの作成

“3.4.2 Strutsと連携するアプリケーションの作成”を参照してください。

2.5 Strutsの運用・保守

2.5.1 起動・停止

Strutsは、IJServerワークユニット上で動作します。

IJServerワークユニットの起動・停止は、Interstage管理コンソール上で行います。

IJServerワークユニットの起動・停止方法については、“Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド”を

参照してください。

Strutsの環境設定については、“2.2 Strutsの環境作成” を参照してください。

2.5.2 ログ

本製品のStrutsで提供するログ機能に標準ログがあります。標準ログは以下の2つから構成されます。

・ システムログ

Strutsランタイムの稼働状態や、エラー情報を表すログ。

・ 性能ログ

Strutsランタイムが処理に要した時間を表すログ。

標準ログはStrutsランタイムの処理において、特定の処理の開始または、終了を契機に出力されます。

標準ログの詳細については“第7章 標準ログ”を参照してください。

- 33 -

Page 42: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図2.1 システムログの出力契機

図2.2 性能ログの出力契機

2.6 注意事項

■RequestProcessorの拡張を行う場合

アプリケーションで使用するRequestProcessorを拡張したクラスに差し替える場合、同一Struts設定ファイル内では他のRequestProcessorを使用する事ができなくなります。

そのため、Tiles機能と拡張したRequestProcessorを同時に使用したい場合は、TilesRequestProcessorをベースに拡張を行うなどの工夫

が必要となります。

- 34 -

Page 43: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■キャンセル処理のセキュリティホール

Struts-1.2.8までは、Formのキャンセルボタンが押下された場合、検証処理が実行されずにユーザの業務ロジックが呼び出されてしま

うセキュリティホールが存在しました。

そのため、Struts 1.2.9では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 requestscope.

■標準ログについて

Strutsが出力する標準ログはActionServletがコントローラとして動作する場合に限定されます。

上記以外の場合は標準ログが出力されません。

2.7 チューニング

■ファイルアップロード機能利用時のパフォーマンスチューニングに関して

ファイルアップロード機能では、アップロードされたデータがStruts設定ファイルで指定したしきい値(256KB)を超える場合、そのデータ

をメモリ上からディスク資源に退避させます。(以後、この退避したデータを一時ファイルと呼称します)

業務運用で想定されるファイルサイズに対して、一時ファイルが作成されるしきい値の設定が適切でない場合、以下の問題が発生す

る可能性があります。

しきい値が小さ過ぎる場合

一時ファイルが頻繁に作成されるようになります。

アクセス速度の遅いディスク資源へのアクセスが発生するため、スループットが低下する恐れがあります。

- 35 -

Page 44: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

また、適切な後始末が行われない場合、一時ファイルが削除されずに残ってしまい、ディスク資源が枯渇する恐れがあります。

しきい値が大き過ぎる場合

一時ファイルの作成頻度を抑える事ができます。

ただし、データサイズの大きいファイルがアップロードされた場合、ヒープ領域の圧迫による処理速度の低下、しいてはOutOfMemoryErrorが発生する可能性があります。

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

2.8.1 ワークユニット起動時の異常

■ワークユニット起動時に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属性に空文字を指定しないでください。

- 36 -

Page 45: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第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 2.5.5が提供する機能と本製品に含まれるSpring Frameworkが提供する機能について記載します。

機能名 Spring Framework 2.5.5本製品で提供するSpring

Framework

DIコンテナ ○ ○

トランザクション抽象化レイヤ ○ ○

JDBC抽象化レイヤ ○ ○

O/Rマッピング連携(TopLink,Hibernate,JDO,iBATIS など) ○ ○

AOP ○ ○

MVCフレームワーク ○ △(注1)

JTAによるトランザクション制御 ○ △(注2)

IJServer間連携 × ○

JDBCのSymfowareエラーコード対応 × ○

一貫したログの出力 × ○

注1)Interstageでは、ポートレット機能は未サポート

注2)Spring Frameworkが持つJTAのトランザクション属性の一部が未サポート

3.1.1 DIコンテナ

DIコンテナはコンポーネント(クラス)間の依存関係をソースコードから取り除き、実行時まで依存関係を持たないようにするデザインパ

ターンに基づいて作られたコンポーネント群を集中管理するための機能です。

Spring Frameworkにおいては、オブジェクトが必要とする情報をBean定義ファイルと呼ばれるXML形式の外部ファイルへ定義し、アプ

リケーション実行時にDIコンテナが定義された情報を注入してオブジェクトのインスタンスを生成します。

DIコンテナを利用する事によって、以下の利点を得る事ができます。

・ アプリケーションの拡張性を高められる

- 37 -

Page 46: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ 単体テストが容易になる

・ コンポーネントの可搬性を高められる

3.1.2 トランザクション抽象化レイヤ

Spring Frameworkでは独自の一貫したトランザクション管理の抽象化を提供しています。

Spring Frameworkにおけるトランザクションの抽象化は、JTAやその他のトランザクション管理テクノロジとは結合していない独特なもの

です。

これにより、土台となるトランザクションインフラを切り離す事が可能となり、以下の利点を得る事ができます。

・ JTA、JDBC、Hibernate、iBATISデータベースレイヤやJDOのような異なるトランザクションAPIに対し、一貫したプログラミングモデ

ルの提供

・ 単純で使いやすいプログラミング的トランザクション管理APIの提供

・ Spring Frameworkのデータアクセス抽象化との結合

・ Spring Frameworkの宣言的トランザクション管理のサポート

Spring Frameworkの設定により、上記の機能を利用する事でスケールアップ/スケールダウンが可能なアプリケーションを開発する事

ができます。

3.1.3 JDBC抽象化レイヤ

Spring FrameworkではJDBCを抽象化したフレームワークを提供しています。

JDBC APIを直接使用するより簡潔にデータアクセスコードを記述できるようになっています。

Spring Frameworkは以下の機能を提供します。

・ 冗長でエラーになりがちな例外処理をアプリケーションからフレームワークへ移すAPI

・ アプリケーションがSQLExceptionの代わりに動作するように意味のあるSpring固有のデータアクセス例外

例外処理APIによって、アプリケーションは適切なSQLを発行し、その結果を抽出する事に専念する事が可能になります。

また、Spring Framework固有のデータアクセス例外によって、JDBC特有のデータアクセス例外ではなくなるため、アプリケーションでは

throwされる可能性があるすべてのJDBCデータアクセス例外を意識する必要がなくなります。

3.1.4 O/Rマッピング連携

Spring Frameworkでは、HibernateやJDO、iBATISなどのObject/Relational Mapping APIを統合するレイヤを提供しています。O/Rマッ

ピングモジュールを使用する事によって、Spring Frameworkが持つ他の機能とO/Rマッピングを組み合わせて使用可能になります。

これらにより、Spring Frameworkでは以下の利点を得る事ができます。

・ 効率の良く、簡単・安全なセッション管理

・ 容易なリソース管理

・ 利便性のある統合トランザクション管理

・ 例外のラッピング

・ ベンダ制約からの避難

・ 容易なテスト

3.1.5 AOPAOPはオブジェクト指向の欠点を補完する事ができるアスペクト指向に基づいたプログラミングです。

アプリケーションでのログ出力やエラー処理、トランザクション制御など、プログラムごとに共通な処理を別のモジュールとして分離する

事によって、機能の内容把握・管理・変更を容易にします。

AOPを利用する場合にはSpring FrameworkのBean定義ファイルへ以下を定義します。

- 38 -

Page 47: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ 処理を実行する条件

・ 処理を実行するタイミング

・ 実行する処理

これにより、条件を満たした場合に指定したタイミングで分離したプログラムを実行することが可能になります。

3.1.6 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アプリケーション開発を支援します。

3.1.7 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は、既存トランザクションが

存在する場合には使用できません。

3.1.8 IJServer間連携

Spring Frameworkでは、リモート呼び出し機能により別プロセスのオブジェクトを呼び出す事ができます。

ただし、別プロセスのオブジェクトを呼び出すためには、開発者がEJBアプリケーションを作成する必要があります。

本製品で提供するSpring Frameworkにおいては、別プロセスのIJServerが管理しているオブジェクトを呼び出すために、開発者が作

成する必要のあるEJBアプリケーション部を提供する事によって、EJBアプリケーションの知識がない場合でも別プロセスのIJServerが管理しているオブジェクトを呼び出す事を可能にします。

- 39 -

Page 48: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3.1.9 Symfowareのエラーコードに対応したJDBCサポート機能

DBアクセスを行うアプリケーションでは、従来ベンダ固有のエラーコードを意識した処理が必要でしたが、Spring Frameworkでは、シ

ステム例外やデータ不整合例外などDBベンダ固有のエラーコードが判断できるように共通のデータベース例外クラスを提供していま

す。

本製品で提供するSpring Frameworkにおいては、SymfowareのエラーコードをSpring Frameworkが提供する例外クラスに関連付ける

事によって、アプリケーションではSymfowareのエラーコードを意識した処理が不要になります。

3.1.10 一貫したログの出力

本製品で提供するSpring Frameworkでは、一連のアプリケーションはコンテキストIDと呼ばれる識別情報に関連付けられます。

ログファイルにコンテキストIDを付加してログメッセージを出力する事によって、一連のアプリケーションが出力したログメッセージを選

定する事を可能にします。

本機能の詳細については、“第7章 標準ログ”を参照してください。

3.2 Spring Frameworkの環境作成

Spring Frameworkを利用するためには、以下の手順で環境を作成します。

・ IJServerの作成

・ クラスパスの設定

・ アプリケーションの配備

3.2.1 IJServerの作成

Spring Frameworkアプリケーションを動作させるために必要なIJServerを作成します。

◆IJServerの作成

Interstage管理コンソールを使用して、IJServerワークユニットを作成します。

・ [システム] > [ワークユニット] > [新規作成]タブ

作成するIJServerのタイプは“EJBアプリケーションのみ運用”以外を指定します

運用形態が分離型の場合、IJServer間連携機能によって呼び出されるIJServerのタイプには“EJBアプリケーションのみ運用”また

は、“WebアプリケーションとEJBアプリケーションを別JavaVMで運用”を指定します

3.2.2 クラスパスの設定

IJServerのクラスパスへSpring Frameworkの機能が動作するために必要なjarファイルを設定します。

◆クラスパスの設定

Interstage管理コンソールを使用して、IJServerワークユニットでSpring Frameworkの機能が動作するために必要なjarファイルをクラス

パスへ設定します。

・ [システム] > [ワークユニット] > “ワークユニット名” > [環境設定]タブ

以下のjarファイルを設定します。

[Interstageのインストールディレクトリ]\BAS\spring25\lib\spring25.jar

[Interstageのインストールディレクトリ]\BAS\spring25\lib\spring-webmvc25.jar

- 40 -

Page 49: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

[Interstageのインストールディレクトリ]\BAS\lib\commons-logging-1.1.1.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-1.1.1.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

3.2.3 アプリケーションの配備

作成した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によるSpringFrameworkアプリケーションの作成”を参照してください。

アプリケーションの作成方法は運用形態によってそれぞれ異なります。

運用形態が「基本型」の場合、「Springプロジェクト・ネイチャーの追加を行ったWebアプリケーションプロジェクト」を作成し、AP層とWEB層の資材および定義ファイルをWARファイルにまとめます。

- 41 -

Page 50: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

運用形態が「IJServer間連携による分離型」の場合、「Springプロジェクト・ネイチャーの追加を行ったWebアプリケーションプロジェクト」

と「Spring Project」または「Springプロジェクト・ネイチャーの追加を行ったjavaプロジェクト」を作成します。

「Springプロジェクト・ネイチャーの追加を行ったWebアプリケーションプロジェクト」にて、WEB層の資材と定義ファイルをWARファイル

にまとめます。

「Spring Project」または「Springプロジェクト・ネイチャーの追加を行ったjavaプロジェクト」にて、AP層の資材と定義ファイルをjarファイル

にまとめます。

後にエンタープライズアプリケーションプロジェクトを作成し、jarファイルをEARファイルにまとめます。

運用形態別のアプリケーション構成図を以下に示します。

■アプリケーション構成図

図3.1 基本型

図3.2 IJServer間連携による分離型

3.3.1 AP層の作成

Web層からの要求に応じて呼び出される業務アプリケーションを作成します。業務アプリケーションでは、データベースとのやり取りな

どの処理を行い、処理結果をWeb層に返します。

■EmployeeDao.java(DAOのインタフェース)

package test;

public interface EmployeeDao {

public void init();

public void destroy();

- 42 -

Page 51: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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が差し込まれる対象となるメソッド

- 43 -

Page 52: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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;

- 44 -

Page 53: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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 ;

}

}

3.3.2 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 {

- 45 -

Page 54: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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="http://java.sun.com/jsp/jstl/core" %>

<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">

- 46 -

Page 55: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<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”の情報を表示します。

3.3.3 定義ファイルの作成

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="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-

beans-2.5.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!-- (1) AOP定義 -->

<aop:config>

<aop:aspect id="sample" ref="sampleAdvice">

<aop:around pointcut-ref="pc1" method="aroundMessage" />

<aop:pointcut expression="execution(* execDao*())" id="pc1" />

- 47 -

Page 56: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

</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として定義したクラスの指定したメソッドを実行します。

処理を実行するクラス/メソッドには、前方/後方/完全一致などの条件を指定することができ、処理を実行するタイミングは、指定したメ

ソッドの直前/直後/前後や例外発生時などを指定することができます。

- 48 -

Page 57: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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 ユーザーズガイド”を参照してくださ

い。

- 49 -

Page 58: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■EARファイルの作成

運用形態が分離型の場合には、WARファイルとEARファイルを作成します。

EARファイルのディレクトリ構成については、“3.3.4 リモート機能によるIJServer間連携”を参照して、Spring Frameworkのアプリケーショ

ン開発に合せた構成にしてください。

WARファイルおよびEARファイルの作成方法については、“Interstage Application Server/Interstage Web Server J2EE ユーザーズガイ

ド”を参照してください。

■アプリケーションの配備

作成したWARファイルまたはEARファイルをInterstage管理コンソールから配備します。

3.3.4 リモート機能による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ファイルの構成図

- 50 -

Page 59: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

“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アプリケーションの開発”を参照してください。

- 51 -

Page 60: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

IJServer間連携機能にてユーザ定義クラスを利用する場合、クラスをシリアライズする必要があります。

また、業務アプリケーションで作成したインタフェースを用意します。

- ListService.java(業務アプリケーションのインタフェース)

3. 定義ファイルの作成

a. 業務アプリケーションのBean定義ファイルを作成

IJServer間連携機能によって呼び出される業務アプリケーションのBean定義ファイルを作成します。

■applicationContext.xml(ファイル名は固定値)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-

beans-2.5.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-

aop-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-

tx-2.5.xsd">

<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>

- 52 -

Page 61: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<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="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-

beans-2.5.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-

aop-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-

tx-2.5.xsd">

<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定義 -->

- 53 -

Page 62: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<bean id="businessService"

class="com.fujitsu.interstage.apfw.springframework.ejb.access.RemoteStatelessSessionProxyFactoryBean">

<!-- 業務アプリケーションのBeanIdを定義します -->

<property name="beanId" value="remoteBusinessService"/>

<!-- 業務アプリケーションのインタフェースを定義します -->

<property name="businessInterface" value="test.ListService"/>

</bean>

</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="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

- 54 -

Page 63: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"

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ファイルをクラスパスへ設定します。

- [システム] > [ワークユニット] > “ワークユニット名” > [環境設定]タブ

- 55 -

Page 64: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

以下の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="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/

beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

・・・

<!-- IJServer間連携機能を動作させるためのBean定義 -->

<bean id="businessService"

class="com.fujitsu.interstage.apfw.springframework.ejb.access.RemoteStatelessSessionProxyFactoryBean">

<!-- 業務アプリケーションのBeanIdを定義します -->

<property name="beanId" value="remoteBusinessService"/>

<!-- 業務アプリケーションのインタフェースを定義します -->

<property name="businessInterface" value="test.ListService"/>

<!-- EJBアプリケーション名を定義します -->

<property name="jndiName" value="sampleEjb"/>

</bean>

・・・

- 56 -

Page 65: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

</beans>

Interstage管理コンソールの操作方法については、“Interstage Application Server/Interstage Web Server J2EE ユーザーズガイ

ド”を参照してください。

7. ネーミングサービスの設定

業務アプリケーションがWebアプリケーションとは別のマシン環境にある場合、ネーミングサービスの設定を行う必要があります。

◆ネーミングサービスの設定

Interstage管理コンソールを使用して、ネーミングサービスを運用するマシンのホスト名を設定します。

- [システム] > [環境設定]タブ > 詳細設定 > ネーミングサービス詳細設定

ネーミングサービスの設計については、“Interstage Business Application Server セットアップガイド”を参照してください。

3.3.5 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トランザクション分離レベルがSERIALIZABLEでかつ、他のトラン

ザクションの完了待ちになったトランザクションが完了しなかった場

合にスローされます。

10 UncategorizedSQLException発生したエラーコードがNo.2~9の例外クラスに該当しない場合に

スローされます。

EmployeeDaoImplを元にBadSqlGrammarException/UncategorizedSQLException/DataAccessExceptionクラスを使用した例外処理の

例を以下に示します。

package test;

・・・

import org.springframework.dao.DataAccessException;

import org.springframework.jdbc.BadSqlGrammarException;

import org.springframework.jdbc.UncategorizedSQLException;

・・・

- 57 -

Page 66: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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が持つ例外クラスをキャッチして例外処理を作成して

いるため、ソースコードを変更せずに移行することができます。

3.3.6 Strutsとの連携

StrutsとSpring Frameworkを連携させることにより、Strutsを利用して構成したアプリケーションにおいてもSpring Frameworkの機能を利

用することが可能になります。

連携のメリット

StrutsとSpring Frameworkを連携させることにより、Struts利用者、Spring Framework利用者の双方に以下のようなメリットがあります。

Struts利用者 Spring Frameworkが持つ、AOPやDIなどの機能を利用することが可能になります。

Spring Framework利用者 Strutsが持つ、よりシンプルなWebMVCフレームワークを利用した開発が可能になります。

Actionクラスに対する依存性の注入

Spring Frameworkと連携することによって、DIコンテナの機能を利用することが可能になります。

DIコンテナの利用方法については、“3.3 Spring Frameworkアプリケーションの開発” を参照してください。

- 58 -

Page 67: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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>

<!-- 1 -->

- 59 -

Page 68: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<aop:aspect id="helloAspect" ref="AOPClass"> ※1

<!-- 2 -->

<aop:before method="printMsg" pointcut-ref="pc1" />

<!-- 3 -->

<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;

- 60 -

Page 69: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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を取得して呼び出しを行います。

構成図

以下に、本連携における構成図を示します。

- 61 -

Page 70: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図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-1.8.0.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-digester-1.8.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\aopalliance.jar

[Interstageのインストールディレクトリ]\BAS\lib\aspectjweaver.jar

[Interstageのインストールディレクトリ]\BAS\lib\cglib-nodep2.1_3.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-logging-1.1.1.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-1.8.0.jar

- 62 -

Page 71: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

/opt/FJSVibs/lib/commons-digester-1.8.1.jar

/opt/FJSVibs/lib/aopalliance.jar

/opt/FJSVibs/lib/aspectjweaver.jar

/opt/FJSVibs/lib/cglib-nodep2.1_3.jar

/opt/FJSVibs/lib/commons-logging-1.1.1.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" />

- 63 -

Page 72: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・・・

</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;

}

- 64 -

Page 73: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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");

}

}

3.3.7 iBATISとの連携

Spring FrameworkはiBATISと連携する事によって、ユーザが開発したアプリケーションのDAOでO/Rマッピング機能を利用する事が

可能になります。

iBATISと連携する場合、以下のクラスを利用します。

・ org.springframework.orm.ibatis.SqlMapClientTemplate

・ org.springframework.orm.ibatis.support.SqlMapClientDaoSupport

iBATISと連携する事によって、Spring FrameworkアプリケーションでiBATISの効果を得られますが、コネクションの管理機能はSpringFramework、iBATISの双方がそれぞれ持っています。

本製品においては、Spring Frameworkでコネクションを管理する方法を推奨とします。

3.4 Spring IDEによるSpring Frameworkアプリケーションの作成

3.4.1 基本的な操作

本章では、Spring IDEの基本的な操作について説明します。

Springプロジェクトの作成

Spring IDEを使用してSpringプロジェクトを生成する手順を以下に示します。

- 65 -

Page 74: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 66 -

Page 75: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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の構成ファイルを生成する手順を以下に示します。

- 67 -

Page 76: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 68 -

Page 77: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2. [Spring] > [Spring Bean Definition] を選択し、[次へ(N)>]ボタンをクリックすると、[Create a new Spring Bean Definition file]画面

に移行します。

- リストボックスから構成ファイルが所属するSpringプロジェクトフォルダを選択します。

- [ファイル名]に構成ファイル名を入力します。

Springプロジェクトのみで、Spring Beanという構成ファイルを作成できます。

- 69 -

Page 78: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3. [次へ(N)>]ボタンをクリックすると、[Select XSD namespace]画面に移行します。

- XSDのネームスペースリストにおいて、必要となるネームスペースチェックボックスにチェックを入れ、かつ当該ネームスペー

ス名を選択することで、下記のリストボックスから異なるバージョンを選択できます。バージョンを選択する場合、1つのみの

チェックボックスにチェックを入れます。選択しない場合、デフォルトのバージョンを利用します。

- 70 -

Page 79: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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プロジェクトに変更できます。

- 71 -

Page 80: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

1. Javaプロジェクトを選択し、右クリックメニューから[Spring Tools]>[Add Spring Project Nature]を選択します。

当該プロジェクトがSpring Project Natureに追加されると、当該プロジェクトの右上の“J”フラグが“S”フラグに変更されます。また、

- 72 -

Page 81: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

必要なSpringライブラリが自動で追加されます。詳細を以下に示します。

複数の構成ファイルに分割する

Spring IDEは、Bean Config Setsをサポートします。複数のBean Config FileをBean Config Setsに追加して、管理することができます。

Config Filesを作成する手順を以下に示します。

1. Spring Projectを選択し、右クリックメニューを開き、[プロパティ]を選択すると、プロパティのダイアログボックスがポップアップされ

ます。

ダイアログボックスから[Spring] >[Beans Support]を選択し、Beans Supportから[Config Files]タブインデックスを選択すると、以下

の画面に移行します。

- 73 -

Page 82: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 74 -

Page 83: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3. 追加するConfig Fileを選択し、[OK]をクリックすると、Config Filesが追加された、以下の画面に移行します。

追加された後、Config FilesがSpring Explorerビューに表示されます。

Config Setsを作成する手順を以下に示します。

1. Spring Projectを選択して、右クリックメニューを開き、[プロパティ]を選択すると、プロパティのダイアログボックスがホップアップさ

れます。

ダイアログボックスから[Spring]>[Bean Support]を選択し、Bean Supportから[Config Sets]タブインデックスを選択すると、以下の

- 75 -

Page 84: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

画面に移行します。

- 76 -

Page 85: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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を選択します。

- 77 -

Page 86: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3. [OK]ボタンをクリックすると、Config Setsが作成されます。詳細を以下に示します。

4. [OK]ボタンをクリックすると、Config SetsがSpring Explorerビューに表示されます。詳細を以下に示します。

Config Setsを作成する前に、Config Filesを追加する必要があります。

Spring Explorer画面の表示

Spring Explorerビューは、フィルタツリーであり、作業領域における全てのSpringプロジェクトを表示します。

Spring Explorerビューを開く方式を以下に示します。

- 78 -

Page 87: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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ビューのツールバーから、以下の機能を使用できます。

- 79 -

Page 88: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ 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通知が定義された構成ファイルおよびその構成ファイルに対応する、クラスを実装するメソッドに表示されま

す。

- 80 -

Page 89: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

上記の図における赤い四角形で示した部分が、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ビューに移

行します。

- 81 -

Page 90: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

Beans Cross Referencesビューツールバーの のボタンを押すと、ビューに関連ノードの内容が表示されます。

Beans Cross Referencesビューのツールバーの[View] > [フィルタ]から[可能なカスタマイズ]画面を開き、ビューにおけるノード内容

のフィルタを行うことができます。詳細を以下に示します。

上記画面に示すように[advised by]がチェックされた場合は、[advised by]の内容がビューでフィルタリングされます。チェック無しの

プロジェクトは、ビューに表示されます。

3.4.2 Strutsと連携するアプリケーションの作成

この項では、StrutsとSpring Frameworkが連携する形態のアプリケーションの作成する場合の開発環境の設定について、Studentsearchという例題アプリケーションを使用して説明します。

- 82 -

Page 91: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

プロジェクトの作成

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

- 83 -

Page 92: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2. プロジェクト名Studentsearchを入力します

3. 新規作成されたStudentsearchプロジェクトがProject Explorerに表示されます。

- 84 -

Page 93: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

4. Studentsearchプロジェクトを選択した状態で、[新規] > [その他]を選択して、[Strutsサポートの追加]ウィザードを選択します。

詳細は、“◆[Strutsサポート]ウィザードの操作手順”を参照してください。

- 85 -

Page 94: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 86 -

Page 95: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

- 87 -

Page 96: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

7. Springプロジェクト・ネイチャーの追加後、Studentsearchプロジェクトは以下のような状態になります。

Webアプリケーションの作成からではなく、[Spring Project]として作成したプロジェクトに対して[Strutsサポートの追加]を行うこともでき

ます。

3.5 Spring Frameworkの運用・保守

3.5.1 起動・停止

Spring Frameworkは、IJServerワークユニット上で動作します。

IJServerワークユニットは、Interstage管理コンソールやコマンドを利用して起動・停止をすることができます。

IJServerワークユニットの起動・停止については、“Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド” を参照

してください。

Spring Frameworkの環境設定については、“3.2 Spring Frameworkの環境作成” を参照してください。

3.5.2 ログ

本製品のSpring Frameworkで提供するログ機能に標準ログがあります。標準ログは以下の2つから構成されます。

・ システムログ

Spring Frameworkの稼働状態を表すインフォメーションや、エラー情報が出力されます。

・ 性能ログ

Spring Framework内部での実行時間が出力されます。

システムログおよび性能ログは、アプリケーションの開始から終了までにおいて、Spring Framework上の特定の契機でメッセージを出

力します。メッセージには様々な情報が含まれており、これによりボトルネックの早期検出や処理の改善を分析するための情報として

利用することができます。

システムログおよび性能ログの出力契機について以下に記載します。

- 88 -

Page 97: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図3.5 システムログの出力契機

図3.6 性能ログの出力契機

システムログおよび性能ログの詳細については“第7章 標準ログ”を参照してください。

3.5.3 複数IJServerによる分離型での運用

Spring Frameworkでは、IJServer間連携機能を利用することによって、アプリケーションをWeb層、AP層に分離して運用することができ

ます。

Spring Frameworkで管理する業務アプリケーション間で処理を連携する運用構成図を以下に示します。

- 89 -

Page 98: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図3.7 運用形態が基本型の場合

図3.8 運用形態が分離型の場合

運用形態が分離型の場合、IJServerのプロセス多重度を設定することで、Web層の業務アプリケーションから呼び出されるAP層の業

務アプリケーションの処理を分散することが可能になります。

運用形態が分離型の場合におけるIJServerの起動・停止順序を以下に示します。

ここでは、Web層のIJServerを“Webアプリケーションサーバ”、AP層のIJServerを“業務アプリケーションサーバ”とします。

- 90 -

Page 99: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図3.9 [Webアプリケーションサーバおよび業務アプリケーションサーバの起動・停止順序]

Webアプリケーションサーバおよび業務アプリケーションサーバの各運用操作の詳細は、“Interstage Application Server/Interstage WebServer J2EE ユーザーズガイド”を参照してください。

3.6 注意事項

3.6.1 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 Framework が 持 つ 例 外

org.springframework.transaction.TransactionSuspensionNotSupportedExceptionがスローされます。

注2)未サポートのため利用できません。利用した場合は、J2EE規約の例外javax.transaction.NotSupportedExceptionがスローされま

す。

- 91 -

Page 100: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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 トラブルシューティング

3.8.1 アプリケーション配備時の異常

アプリケーション配備時におけるトラブルシューティングに関して特に記載することはありません。

3.8.2 ワークユニット起動時の異常

■アプリケーションの活性化に失敗する

以下の可能性があります。

・ ワークユニットの環境設定に誤りがある

・ AOP機能を利用している場合、必要なモジュールがクラスパス上に存在しない

・ IJServer間連携機能を利用する場合において、ネーミングサービスにIJServer間連携用のEJBアプリケーションが登録されていな

“3.2 Spring Frameworkの環境作成”および“3.3 Spring Frameworkアプリケーションの開発”を参照して設定に誤りがないか確認してく

ださい。

3.8.3 アプリケーション実行時の異常

■Beanが見つからない

以下の可能性があります。

・ アプリケーションに記述したBeanId名がBean定義ファイルに記述されていない

・ アプリケーションに記述したBeanId名とBean定義ファイルに記述したBeanId名が一致していない(アルファベットの大文字と小文字

は区別されます)

・ IJServer間連携機能を利用する場合において、BeanIdプロパティに指定した値が別のIJServer上のBean定義ファイルに記述した

BeanId名と一致していない(アルファベットの大文字と小文字は区別されます)

“3.2 Spring Frameworkの環境作成”および“3.3 Spring Frameworkアプリケーションの開発”を参照してBean定義ファイルへの記述方

法に誤りがないか確認してください。

■Bean定義ファイルがみつからない

以下の可能性があります。

- 92 -

Page 101: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ 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のクラスローダ構成に依存します。“InterstageApplication 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で管理されてお

らず、リクエストのたびに新たにインスタンスが生成されます。

大量のリクエストが同時に長時間に渡り送信された場合、新たなインスタンスが生成され続けることによりメモリ不足が発生する可能性

があるため、運用に応じて十分なメモリを割り当ててください。

- 93 -

Page 102: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第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 2.3.4 本製品で提供するiBATIS

O/R マッピング機能 ○ ○

コネクション管理 △(注1) △(注1)

トランザクション管理 △(注1) △(注1)

一貫したログの出力 × ○(注2)

注1) 簡易的な管理機能を提供します。コネクション管理、トランザクション管理は、Spring Frameworkで管理することを推奨します。

注2) Spring FrameworkまたはStrutsと連携した場合のみ利用可能です。

- 94 -

Page 103: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

4.1.1 O/Rマッピング

オブジェクト指向言語であるJavaでは、リレーショナルデータベースを扱う場合、テーブル構造とJavaオブジェクトの対応付けが必要と

なります。リレーショナルデータベース設計とオブジェクト指向設計では、設計方法が異なるため、この対応付けが煩雑です。これをイ

ンピーダンスミスマッチといいます。インピーダンスミスマッチを解決するためには、テーブル構造のデータをオブジェクト構造のデータ

に対応付けるためのコードを作成する必要があります。したがって、データ構造が複雑になると、煩雑な作業が多くなりバグを埋め込

む危険性が高くなります。

O/Rマッピングは、リレーショナルデータベースのテーブル構造を Javaオブジェクトに対応付けてインピーダンスミスマッチを解消する

機能です。

iBATISのO/Rマッピングは、リレーショナルデータベースのテーブル構造とJavaオブジェクトを対応付けするために、SQL文とそれに対

応するJavaクラスの情報をSQLマッピング情報ファイルとしてXMLファイルで記述します。業務アプリケーションの実装時、データベー

ス操作にかかわる処理に必要なJavaコードを減少させ開発効率を向上させることが可能です。また、データベース接続情報をデータ

ベース接続ファイルとしてXMLで記述します。これにより、業務アプリケーションからデータベースアクセス処理を分離することができ、

データベースの変更などの際に修正を局所化できます。

図4.2 インピーダンスミスマッチの例

4.1.2 コネクション管理

データベースのコネクションをiBATISで取得することができます。コネクションプーリングなどコネクション管理に関する処理を業務アプ

リケーションから分離することができます。iBATISのコネクション管理方法には、SIMPLE、DBCP、JNDIの3つがあります。

データソースファクトリ 特徴 備考

SIMPLEJDBC2.0に対応したデータソースのシンプ

ルな実装です。軽量で手軽なコネクション

プーリングのソリューションです。

プロパティファイルにデータベース接続用のユーザ

名、パスワードを平文で記述します。

DBCP Jakarta DBCPを使用します。プロパティファイルにデータベース接続用のユーザ

名、パスワードを平文で記述します。

JNDIJNDIコンテキストからコンテナのデータソー

スの実装を利用します。

アプリケーションサーバからコネクションプールが提供

されている場合に使用してください。InterstageApplication Serverでは、パスワードは暗号化されま

す。

- 95 -

Page 104: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

4.1.3 トランザクション管理

トランザクション管理サービスの設定をiBATISですることができます。JDBC、JTA、EXTERNALの3つのトランザクションマネージャが

iBATISに含まれています。

トランザクションマネージャ 特徴 備考

JDBCデフォルトでは、自動コミットします。Connectionのcommit()とrollback()メソッド経由でトランザクションの制御が可能で

す。

JTA JTAグローバルトランザクションを使用します。JNDIリソースからuserTransactionプロ

パティセットを必要とします。

EXTERNAL ユーザ自身でトランザクションを管理することが必要です。

4.1.4 一貫したログの出力

Interstage Business Application Serverでは標準ログとして、システムログ、性能ログを出力することができます。

システムログは、業務アプリケーションからのiBATISの呼び出し時とiBATIS復帰時に出力します。またiBATISからのリレーショナル

データベース呼び出し時と復帰時にログに出力します。

性能ログは、業務アプリケーションからのiBATISの呼び出しから復帰までの時間をiBATIS復帰時に出力します。またiBATISからのリ

レーショナルデータベース呼び出しから復帰までの時間もリレーショナルデータベースからの復帰時に出力します。コンテキストIDを

付加してログを出力する事によって、一連のアプリケーションが出力したログを選定する事を可能とし一貫したログ情報を取得できま

す。

本機能の詳細については、“第7章 標準ログ”を参照してください。

4.2 iBATISの環境作成

iBATISを利用するためには、以下の手順で環境を作成します。

・ データベース接続の設定

・ IJServerの作成

・ クラスパスの設定

・ iBATISアプリケーションの配備

4.2.1 データベース接続の設定

データベース接続させるためにJDBCデータソース定義を登録します。

操作は、Interstage管理コンソールを使用して行います。

・ [システム] > [リソース] > [JDBC] > [新規作成]タブ

データベース接続の設定方法などについては、“Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド”を参照

してください。

4.2.2 IJServerの作成

iBATISアプリケーションを動作させるために必要なIJServerを作成します。

Interstage管理コンソールを使用して作成します。

・ [システム] > [ワークユニット] > [新規作成]タブ

IJServerの作成方法については、“Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド”を参照してください。

- 96 -

Page 105: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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-1.1.1.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-1.1.1.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を設定してください。

4.2.4 アプリケーションの配備

作成したIJServerへ、iBATISアプリケーションを配備します。

Interstage管理コンソールを使用して、IJServerワークユニットへiBATISアプリケーションファイルを配備します。

・ [システム] > [ワークユニット] > “ワークユニット名” > [配備]タブ

アプリケーションの配備の方法については、“Interstage Application Server / Interstage Web Server J2EE ユーザーズガイド”を参照して

ください。

4.3 iBATISアプリケーションの開発

本項では、iBATISアプリケーションの開発の手順を説明します。

・ iBATISの基本設計

・ iBATISアプリケーションに必要な設定ファイルの作成

- 97 -

Page 106: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ iBATISアプリケーションの実行クラスを作成(Spring Frameworkと連携しない場合)

・ Strutsとの連携

・ Spring Frameworkとの連携

Interstage Studio上でiBATISアプリケーションを作成する場合は、WebアプリケーションプロジェクトなどのJavaネイチャーが有効なプロ

ジェクトで作成してください。

4.3.1 iBATISの基本設計

iBATISアプリケーション作成の前にデータベースの設計を実施してください。

データベースに登録されたテーブル情報からオブジェクトとしてまとめる要素を決定し、オブジェクトを操作するためのSQL文を設計し

てください。

4.3.2 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"

"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

<transactionManager type="JDBC">

<dataSource type="JNDI">

<property name="DataSource" value="java:comp/env/jdbc/ibatis_DS"/>

</dataSource>

</transactionManager>

- 98 -

Page 107: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<sqlMap resource="BAS_BUDGET_SqlMap.xml" />

</sqlMapConfig>

下記にタグの説明を記載します。

エレメント 属性 説明

transactionManager type 使用するトランザクションタイプを設定します。

dataSource type 使用するデータソースタイプを設定します。

propertyname プロパティの名前を設定します。

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"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<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>

- 99 -

Page 108: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<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

class SQL文の実行によって生成されたResultSetのカラムとJavaオブジェクトのプロパティをマッ

ピングします。結果をマッピングするクラスを指定します。

id ステートメントが参照するために使用する識別子を指定します。

result

columun マッピングするデータベースのカラム名を設定します。

jdbctype セットするプロパティのjavaプロパティ型を明示的に指定するために設定します。

property SQL文によって返された結果をマッピングするオブジェクトのプロパティ名を設定します。

insert 挿入処理をするためのステートメントを設定します。

update 更新処理をするためのステートメントを設定します。

select 検索処理をするためのステートメントを設定します。

delete 削除処理をするためのステートメントを設定します。

作成したSQL Mapファイルはアプリケーションと一緒に配備します。

SQL Map ファイルの雛形は下記に格納してあります。

- 100 -

Page 109: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

サーバパッケージ

[Interstageのインストールディレクトリ]\BAS\ibatis23\sample\SqlMap.xm

開発環境パッケージ

[Interstageのインストールディレクトリ]\BAS\sample\openjava\iBATIS\SqlMap.xml

/opt/FJSVibsjf/ibatis23/sample/SqlMap.xml

4.3.3 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){

- 101 -

Page 110: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

// (2)

sqlMap.insert("BAS_BUDGET.ibatorgenerated_insert", budget);

・・・

(1)SQL Map 設定ファイルの読み込み

SQL Map 設定ファイルの読み込みをします。この情報を元にSqlMapClientのインスタンスを作成します。

(2)SQLの実行

SQL Mapファイルで記述したSQL文を実行します。

4.3.4 Strutsとの連携

StrutsとiBATISを連携させることにより、Strutsを利用して構成したアプリケーションにおいてもiBATISの機能を利用することが可能にな

ります。

連携のために必要な設定はありません。SqlMapClientを呼び出すクラスを、ActionServletから呼び出してください。

4.3.5 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 {

- 102 -

Page 111: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・・・

// (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の実装の登録

- 103 -

Page 112: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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"

"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

<!-- (1) -->

<sqlMap resource="BAS_BUDGET_SqlMap.xml" />

</sqlMapConfig>

(1)Sql Mapファイルの設定

Sql Mapファイルを設定します。

4.4 iBATISの運用・保守

4.4.1 起動・停止

iBATISは、IJServerワークユニット上で動作します。

IJServerワークユニットは、Interstage管理コンソールやコマンドを利用して起動・停止をすることができます。

IJServerワークユニットの起動・停止については、“Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド” を参照

してください。

iBATISの環境設定については、“4.2 iBATISの環境作成” を参照してください。

4.4.2 ログ

本製品のiBATISで提供するログ機能に標準ログがあります。標準ログは以下の2つから構成されます。

・ システムログ

iBATISの稼働状態を表すインフォメーションや、エラー情報が出力されます。

・ 性能ログ

iBATIS内部での実行時間が出力されます。

システムログおよび性能ログは、アプリケーションの開始から終了までにおいて、Spring Framework上の特定の契機でメッセージを出

力します。メッセージには様々な情報が含まれており、これによりボトルネックの早期検出や処理の改善を分析するための情報として

利用することができます。

システムログおよび性能ログの出力契機について以下に記載します。

- 104 -

Page 113: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図4.3 システムログの出力契機

図4.4 性能ログの出力契機

4.5 注意事項

4.5.1 データベース固有の注意点

Symfoware V9.1以前のバージョンでは以下の機能制限があります。

項番 制限事項 対処方法 解除予定

1 SQLマップ設定ファイルの<settings>エレメントの

defaultStatementTimeoutは未サポートです。

ありません。実行時にエラーになりま

す。

SymfowareV10

2 SQLマップファイルのステートメントエレメントのfetchSize属性は

未サポートです。

ありません。実行時にエラーになりま

す。

SymfowareV10

3 SQLマップファイルのステートメントエレメントのtimeout属性は

未サポートです。

ありません。実行時にエラーになりま

す。

SymfowareV10

4 バッチ処理は利用できません。 ありません。実行時にエラーになりま

す。

SymfowareV10

5 iBATISのキーの自動生成機能は利用できません 手動でキーを設定してください。 未定

6 SQLのCOUNT関数を利用する場合はAS演算子を使用してく

ださい。

ありません。AS演算子を使用しない場

合、実行時にエラーになります。

未定

- 105 -

Page 114: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

4.6 チューニング

OSの設定値など、特にチューニングは必要ありません。

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

4.7.1 アプリケーション実行時の異常

■アプリケーションの実行時に「指定されたメソッドは当ドライバではサポートされていません」が出力される

SymfowareV9.2を使用している場合、"4.5.1 データベース固有の注意点"を参照してください。

- 106 -

Page 115: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第5章 TERASOLUNA

5.1 TERASOLUNAの概要

TERASOLUNAフレームワークは、Spring Frameworkをベースにして機能拡張を行ったフレームワークです。

ここでは、TERASOLUNAの概要を説明します。

5.1.1 提供機能

図5.1 フレームワークの組み合わせモデル

■TERASOLUNAフレームワーク

TERASOLUNAフレームワーク・ラインナップのうち、次のJavaフレームワークを提供します。

Javaフレームワーク バージョン

TERASOLUNA Server Framework for Java (Web版) 2.0.2.0

TERASOLUNA Server Framework for Java (Rich版) 2.0.2.0

TERASOLUNA Batch Framework for Java 2.0.1.0

・ 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 JavaJavaによるバッチアプリケーション開発を実現するためのフレームワークです。

バッチアプリケーションでは、限られたリソースでの大量データの処理や、バッチ処理特有のトランザクション管理が求められます。

これらバッチアプリケーション特有の要件をフレームワークでサポートすることで、システムの品質向上・開発の効率化を実現しま

す。

以降、TERASOLUNA-Batchと表記します。

TERASOLUNA-Batchでは、次のジョブ実行をサポートしています。

- IJServer上での非同期バッチデーモンを使用しない非同期ジョブ

- IJServer上での非同期バッチデーモンを使用した非同期ジョブ

以降、上記のJavaフレームワークをTERASOLUNAフレームワークと表記します。

また、TERASOLUNAフレームワークを使用して開発・運用するアプリケーションを、TERASOLUNAアプリケーションと表記します。

- 107 -

Page 116: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

本製品に含まれるTERASOLUNAフレームワークでは、以下の機能もサポートします。

・ Symfowareをサポートします。

TERASOLUNA Batch Framework for Javaと本製品に含まれるTERASOLUNA Batch Framework for Javaが提供する機能について記

載します。

機能名 TERASOLUNA Batch Framework forJava 2.0.1.0

本製品で提供するTERASOLUNA BatchFramework for Java

スタンドアロンでのジョブ実行 ○ ×

アプリケーションサーバ上でのジョブ実行 ○ ○

同一Java VM上での非同期バッチデーモ

ンの複数起動

○ ×

TERASOLUNA Server Framework for Java (Web版)/TERASOLUNA Server Framework for Java (Rich版)において、提供機能に関

する差分はありません。

■ブランクプロジェクトとサンプルプロジェクト

次のプロジェクトを提供します。

これらのプロジェクトをインポートすることで、TERASOLUNAアプリケーションの開発環境を構築することができます。

・ ブランクプロジェクト

TERASOLUNAアプリケーション開発環境を構築するためのものです。

ブランクプロジェクトの使用方法は、“5.3 TERASOLUNAの開発”を参照してください。

・ サンプルプロジェクト

TERASOLUNAアプリケーションのサンプルです。

サンプルプロジェクトの使用方法は、“付録A TERASOLUNAのサンプルアプリケーション”を参照してください。

5.1.2 システムモデル

次のシステムモデルをサポートします。

・ オンラインモデル

オンラインモデルとは、TERASOLUNA Server Framework for Javaを使用し、Webブラウザまたはリッチクライアントからのリクエスト

要求を処理するモデルです。

- 108 -

Page 117: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ バッチモデル

バッチモデルとは、TERASOLUNA Batch Framework for Javaを使用し、バッチ処理を行うモデルです。

・ オンバッチ連携モデル

オンバッチ連携モデルとは、オンラインモデルとバッチモデルが連携し、Webブラウザまたはリッチクライアントから受け付けたリク

エスト要求の延長上で、バッチ処理を行うモデルです。

スレッド制御などのパフォーマンスを考慮すると、オンラインモデルとバッチモデルを異なるワークユニット上で構築したうえで連携

することを推奨します。

5.2 TERASOLUNAの環境作成

次の手順で、TERASOLUNAアプリケーションの動作に必要な環境を作成します。

・ IJServerの作成(共通)

・ クラスパスの設定(共通)

- 109 -

Page 118: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ ワークマネージャの設定(TERASOLUNA-Batchのみ)

・ TERASOLUNAフレームワークが出力するログの設定(共通)

5.2.1 IJServerの作成

TERASOLUNAアプリケーションを動作させるために必要なIJServerを作成します。

◆IJServerの作成

Interstage管理コンソールを使用して、IJServerワークユニットを作成します。

・ [システム] > [ワークユニット] > [新規作成]タブ

5.2.2 クラスパスの設定

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-1.8.0.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-dbcp-1.2.2.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-digester-1.8.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-jxpath-1.3.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-lang-2.4.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-logging-1.1.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-pool-1.4.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-validator-1.3.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\jakarta-oro-2.0.8.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)

- 110 -

Page 119: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

/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-1.8.0.jar

/opt/FJSVibs/lib/commons-dbcp-1.2.2.jar

/opt/FJSVibs/lib/commons-digester-1.8.1.jar

/opt/FJSVibs/lib/commons-jxpath-1.3.jar

/opt/FJSVibs/lib/commons-lang-2.4.jar

/opt/FJSVibs/lib/commons-logging-1.1.1.jar

/opt/FJSVibs/lib/commons-pool-1.4.jar

/opt/FJSVibs/lib/commons-validator-1.3.1.jar

/opt/FJSVibs/lib/jakarta-oro-2.0.8.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-2.7.7.jar

[Interstageのインストールディレクトリ]\BAS\lib\aspectjweaver.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-fileupload-1.2.1.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-2.7.7.jar

/opt/FJSVibs/lib/aspectjweaver.jar

/opt/FJSVibs/lib/commons-fileupload-1.2.1.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-1.0.5.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-collections-3.2.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\commons-fileupload-1.2.1.jar

[Interstageのインストールディレクトリ]\BAS\lib\jaxrpc.jar

- 111 -

Page 120: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

[Interstageのインストールディレクトリ]\BAS\lib\spring-modules-validation-0.8.jar

[Interstageのインストールディレクトリ]\BAS\lib\velocity-1.6.2.jar

[Interstageのインストールディレクトリ]\BAS\lib\velocity-tools-generic-1.4.jar

[Interstageのインストールディレクトリ]\BAS\lib\velocity-tools-view-1.4.jar

[Interstageのインストールディレクトリ]\BAS\lib\xercesImpl-2.9.0.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-1.0.5.jar

/opt/FJSVibs/lib/commons-collections-3.2.1.jar

/opt/FJSVibs/lib/commons-fileupload-1.2.1.jar

/opt/FJSVibs/lib/jaxrpc.jar

/opt/FJSVibs/lib/spring-modules-validation-0.8.jar

/opt/FJSVibs/lib/velocity-1.6.2.jar

/opt/FJSVibs/lib/velocity-tools-generic-1.4.jar

/opt/FJSVibs/lib/velocity-tools-view-1.4.jar

/opt/FJSVibs/lib/xercesImpl-2.9.0.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-3.2.1.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-3.2.1.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

5.2.3 ワークマネージャの設定(TERASOLUNA-Batchのみ)

ワークマネージャがプーリングするスレッド数のチューニングが必要な場合があります。

詳細は、“5.6.1 TERASOLUNA Batch Framework for Javaのチューニング”を参照してください。

- 112 -

Page 121: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

5.2.4 TERASOLUNAフレームワークが出力するログの設定

TERASOLUNAフレームワークが出力するログと、TERASOLUNAアプリケーションが出力するログの定義は、それぞれ異なる定義で

ログを出力します。

・ TERASOLUNAフレームワークが出力するログ

オープンJavaフレームワーク共通のログ設定に従って、ログ出力を行います。

TERASOLUNAフレームワークが出力するログについては、“第7章 標準ログ”を参照してください。

・ TERASOLUNAアプリケーションが出力するログ

TERASOLUNAアプリケーションの開発時にログ定義を行います。

なお、ブランクプロジェクトおよびサンプルプロジェクトでは、commons-loggingを使ってログ出力を行います。

詳細は、“5.3.4 TERASOLUNAアプリケーションが出力するログの設定”を参照してください。

なお、TERASOLUNAフレームワークとTERASOLUNAアプリケーションとで同じ種類のログ実装クラスを指定することで、同一のログ

に出力することができます。詳細については、“第6章 オープンJavaフレームワークにおけるログ機能の利用”を参照してください。

5.3 TERASOLUNAの開発

TERASOLUNAアプリケーションの開発の手順を、以下に示します。

・ プロジェクトのインポート

・ ファイルパスの修正

・ データベースの設定

・ TERASOLUNAアプリケーションが出力するログの設定

・ アプリケーションの開発

・ ワークマネージャのスレッドプールサイズの調整(TERASOLUNA-Batch)

・ 配備アプリケーションの変更手順

・ デバッグ方法

TERASOLUNAアプリケーションの開発方法の詳細は、TERASOLUNAのマニュアル(http://sourceforge.jp/projects/terasoluna/)を参

照してください。ここでは、Interstage固有の作業手順を説明します。

5.3.1 ブランクプロジェクトのインポート

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

- 113 -

Page 122: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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>

5.3.3 データベースの設定

データベースの設定については、使用するデータベース製品のマニュアルを参照してください。

ここでは、TERASOLUNAフレームワークおよびTERASOLUNAアプリケーションが使用するデータベースの設定について、全体的な

流れおよび、Interstage固有の作業手順を説明します。

■TERASOLUNAフレームワークが使用するデータベース (TERASOLUNA-Batch)

TERASOLUNA-Batchでは、TERASOLUNAフレームワークはデータベースを使用しジョブを管理します。

次の手順で、データベースの設定を行います。

1. データベースの選択

- 114 -

Page 123: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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以降を使用します。

- 115 -

Page 124: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

◆データベースとテーブルの作成

データベース、スキーマおよび、テーブルなどを作成します。

◆定義ファイルの編集

必要に応じて、使用するデータベースに合わせて、定義ファイルを修正します。

【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のシステムのクラスパスに追加します。

5.3.4 TERASOLUNAアプリケーションが出力するログの設定

TERASOLUNAフレームワークが出力するログと、TERASOLUNAアプリケーションが出力するログの定義は、それぞれ異なる定義で

ログを出力します。

ブランクプロジェクトでは、commons-loggingを使用してログ出力を行います。

Jakarta Commons Loggingの設定を変更するには、次の設定ファイルを編集します。

・ /src/commons-logging.properties

TERASOLUNAフレームワークが出力するログの設定方法は、“5.2.4 TERASOLUNAフレームワークが出力するログの設定”を参照し

てください。

5.3.5 アプリケーションの開発

ここでは、開発の概要を説明します。

TERASOLUNAアプリケーションの主な開発項目としては、以下があります。

・ ビジネスロジックの作成 (共通)

・ クライアントに返却するデータ(プレゼンテーション層)の作成 (TERASOLUNA-Web/TERASOLUNA-Rich)

・ 各種定義ファイルの作成・編集

TERASOLUNAアプリケーションの開発方法の詳細は、TERASOLUNAのドキュメントを参照してください。

- 116 -

Page 125: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■ビジネスロジックなどの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”を指定します。

5.3.6 ワークマネージャのスレッドプールサイズの調整 (TERASOLUNA-Batch)TERASOLUNA-Batchでは、実際に生成されるスレッド数に応じて、ワークマネージャのスレッドプールサイズを調整する必要がありま

す。詳細は、“5.6 チューニング”を参照してください。

また、ブランクプロジェクトのBean定義ファイルでは、Interstageのワークマネージャへの対応を行っています。

- 117 -

Page 126: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

5.3.7 配備アプリケーションの変更手順

配備済みのアプリケーションを変更する場合の手順を以下に示します。

1. 修正したいアプリケーションのプロジェクトを開発環境で開き、修正を行います。

2. 修正を行ったプロジェクトのコンパイル・ビルドを実施後、アプリケーションを再配備します。

5.3.8 デバッグ方法

TERASOLUNAアプリケーションをデバッグするには、以下の方法があります。

・ アプリケーションサーバに配備せず、TERASOLUNAアプリケーションを単体実行する。

・ Interstage Studio やInterstage Application Serverを利用してデバッグを実行する。

Interstage Studioの詳細については、“Interstage Studio ユーザーズガイド”を参照してください。

Interstage Application Serverの詳細については、“Interstage Application Server J2EEユーザーズガイド”、“Interstage ApplicationServer チューニングガイド”、“Interstage Application Serverトラブルシューティング集”などのマニュアルを参照してください。

5.4 TERASOLUNAの運用・保守

5.4.1 起動・停止

TERASOLUNAアプリケーションは、IJServerワークユニット上で動作します。

IJServerワークユニットは、Interstage管理コンソールを利用して起動・停止をすることができます。

IJServerワークユニットの起動・停止については、“Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド” を参照

してください。

TERASOLUNAの環境設定については、“5.2 TERASOLUNAの環境作成” を参照してください。

5.4.2 ログ

TERASOLUNAアプリケーションが出力するログと、TERASOLUNAフレームワークが出力するログの2種類があります。

TERASOLUNAフレームワークが出力するログは、“5.2.4 TERASOLUNAフレームワークが出力するログの設定”を参照してください。

TERASOLUNAアプリケーションが出力するログは、“5.3.4 TERASOLUNAアプリケーションが出力するログの設定”を参照してくださ

い。

5.4.3 異常発生時の対処

ログを参照することにより、異常発生の有無を確認することができます。

ログにメッセージやスタックトレースが出力されていれば、“メッセージ集”および“トラブルシューティング集”を参照して、異常発生の原

因を取り除きます。

5.5 注意事項

5.5.1 共通の注意事項

Symfowareを使用するにあたっての注意事項として、“4.5.1 データベース固有の注意点”を参照してください。

5.5.2 TERASOLUNA Batch Framework for Java使用時の注意事項

同一IJServer内で、複数個の非同期バッチデーモンを起動しないでください。

複数個の非同期バッチデーモンを起動したい場合は、複数個のIJServerを用意してください。また、バッチデーモンごとに、異なるジョ

ブ管理テーブル、ジョブ結果テーブル、リスタート管理テーブルを使用してください。

- 118 -

Page 127: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

TERASOLUNA-Batchを使用する場合は、アプリケーション安定稼動機能を使用することはできません。

5.6 チューニング

5.6.1 TERASOLUNA Batch Framework for Javaのチューニング

TERASOLUNA Batch Framework for Javaでは、システム構成に合わせて非同期ジョブを実行するスレッド数をチューニングします。

そのチューニング結果として生成されるスレッド数が、ワークマネージャのスレッドプールサイズを超える場合、TERASOLUNAフレー

ムワークがフリーズし、ジョブが終了しなくなる場合があります。

■生成するスレッド数の計算

同一の非同期バッチデーモンで複数のジョブを実行する場合、同一のワークマネージャ内でスレッドを生成します。

そのイメージを、下図に示します。

ワークマネージャのスレッドプール内で生成するスレッドは、次の計算式で算出できます。

生成スレッド数=同時に実行するジョブの個数×非同期ジョブのmultiplicity×2

(なお、通常ジョブの場合、multiplicityは1とみなして計算します)

■Java VMがハングアップしたときのワークマネージャの状況

mulitiplicityが3の非同期ジョブを4個同時に実行した場合、生成するスレッド数は、前述の計算式により24個です。そのとき、ワークマ

ネージャのスレッドプールサイズが12の場合、下図に示す状態になる場合があります。

- 119 -

Page 128: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

上図は、スレッドプールサイズが12しかないのに、対象データを取得するスレッド12個がすでにプーリングされていて、これ以上新しい

スレッドを生成できない状態です。そのためBLogicを実行するスレッドを起動することができず、BLogicを実行することができません。

その結果、対象データを取得するスレッドが永遠にBLogicの実行が終わるのを待ち続けることになり、ジョブがいつまでも終了しなくな

ります。

そうならないようにするための対処方法には、次があります。

1) 非同期バッチデーモンで同時に実行するジョブ数を調整する

2) 非同期バッチデーモンを使用しないジョブを実行する

3) 分割ジョブでなく通常ジョブを実行する

4) 分割ジョブのmuitiplicityを減らす

5) ワークマネージャのスレッドプールサイズを調整する

1)、2)については、非同期バッチデーモンが同時に実行するジョブを減らすようにプログラムを見直してください。

3)~4)については、当該ジョブのジョブBean定義ファイルの設定を見直してください。

5)については、次で説明します。

■ワークマネージャのスレッドプールサイズの調整

ワークマネージャのスレッドプールサイズを調整する場合は、下記ファイルを修正し、スレッドプールサイズを変更します。

OS ファイルの所在 修正箇所

Windows [Interstageのインストールディレクトリ] \BAS\terasoluna\var\commonj\.bindings

java\:comp/env/wm/default/RefAddr/0/Content=<スレッド

プールサイズ>

Solaris/Linux /opt/FJSVibs/var/terasoluna/commonj/java:comp/env/wm/.bindings

default/RefAddr/0/Content=<スレッドプールサイズ>

- 120 -

Page 129: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ スレッドプールサイズ:

ワークマネージャで使用されるスレッドプールサイズです。

1~100の値で指定することができます。初期値は10です。

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

5.7.1 TERASOLUNA Batch Framework for Javaのトラブルシューティング

TERASOLUNA Batch Framework for Javaでは、以下の現象が発生する可能性があります。

・ ジョブが終了しない

ジョブBean定義ファイルの記述を誤ると、フレームワーク側でNullPointerExceptionが発生し、当該ジョブが終了しない場合があり

ます。NullPointerExceptionの発生有無は、ログで確認してください。

・ Java VMがハングアップする

対象データを取得するスレッドの個数が、ワークマネージャのスレッドプールサイズ以上になると、ビジネスロジックを実行すること

ができなくなり、TERASOLUNAフレームワークがフリーズします。詳細は“5.6 チューニング”を参照してください。

- 121 -

Page 130: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第6章 オープンJavaフレームワークにおけるログ機能の利用

6.1 commons-logging API仕様に準拠したログ機能

6.1.1 commons-logging API仕様に準拠したログ機能の概要

オープンJavaフレームワーク機能では、Interstage Business Application Serverが提供しているログ機能を使用するための、commons-loggingのAPI仕様に準拠したログクラスであるApfwLoggerを提供します。

これによって、開発時にはアプリケーションが出力するログに関してはcommons-loggingのAPIで実装しておき、アプリケーション固有

の業務処理を先に実装することができます。

実行時に動作するログ出力クラスへApfwLoggerを指定し、読み込むログ定義ファイルのパスを指定することによって、アプリケーショ

ンを変更することなく指定したログ定義ファイルの定義内容に従ってログを出力することが可能になります。

6.1.2 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のプロパティファイルの仕様に準拠します

- 122 -

Page 131: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

サブシステム名は半角英数字7文字以内で設定します

上記のプロパティファイルを含めてアプリケーションを作成します。

■アプリケーションの配備

IJServerを作成し、アプリケーションを配備します。

◆アプリケーションの配備操作

Interstage管理コンソールを使用して、IJServerワークユニットへアプリケーションを配備します。

・ [システム] > [ワークユニット] > "ワークユニット名" > [配備]タブ

■クラスパスの設定

IJServerのクラスパスへログ機能が動作するために必要なjarファイルを設定します。

◆クラスパスの設定

Interstage管理コンソールを使用して、IJServerワークユニットでログ機能が動作するために必要なjarファイルをクラスパスへ設定しま

す。

・ [システム] > [ワークユニット] > "ワークユニット名" > [環境設定]タブ

以下のjarファイルを設定します。

[Interstageのインストールディレクトリ]\BAS\lib\commons-logging-1.1.1.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-1.1.1.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

- 123 -

Page 132: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

ライブラリパス [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の記述内容

- 124 -

Page 133: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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

6.1.3 アプリケーションログの出力レベルについて

ログ機能では、アプリケーションが出力する情報に重要度を表すレベルを設定することができます。また、特定のレベル以上のログだ

けを出力するようにログ定義ファイルで管理名ごとに設定することができます。

ログ出力レベルを設定することにより、デバッグ時には多くの情報をログに出力したり、本稼働時には重要度が高いログに絞って出力

したり、ログを出力しない運用にするという制御が可能になります。

ログ定義ファイルにおいてログ出力レベルを10に設定した場合、ログ出力レベルが3、5、10のログが出力されます。

アプリケーションでログを出力するために利用するcommons-logging APIごとに対応するログ機能のログ出力レベルが異なっています。

以下にcommons-logging APIとログ機能のログ出力レベルの対応表を記載します。

commons-logging API ログ機能のログ出力レベル

fatal() 3

error() 3

warn() 5

info() 10

- 125 -

Page 134: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

debug() 15

trace() 20

・ ログ機能のデフォルトのログ出力レベルは9です

・ 高信頼性ログにはログ出力レベルがないため、常に高信頼性ログへログが出力されます

6.2 ログ機能の利用方法

6.2.1 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");

}

}

6.2.2 LogComposerクラスを用いてログを出力する

LogComposerクラスを用いてログを出力する場合

(LogComposerを用いてログ出力を行う場合)

import org.apache.commons.logging.Log;

- 126 -

Page 135: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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のため、ログの出力ができません

・・・

}

}

}

6.2.3 ExtMessageComposerクラスを用いてログを出力する

ExtMessageComposerクラスを用いてログを出力する場合

(ExtMessageComposerを用いてログ出力を行う場合)

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.fujitsu.interstage.apfw.logging.ApfwLogger;

- 127 -

Page 136: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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のため、ログの出力ができません

・・・

}

}

}

6.2.4 ExtDataComposerクラスを用いてログを出力する

ExtDataComposerクラスを用いてログを出力する場合

(ExtDataComposerを用いてログ出力を行う場合)

import java.util.HashMap;

- 128 -

Page 137: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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のため、ログの出力ができません

・・・

}

}

}

6.2.5 ExtTimeComposerクラスを用いてログを出力する

- 129 -

Page 138: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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のため、ログの出力ができません

・・・

}

}

- 130 -

Page 139: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

}

6.2.6 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;

- 131 -

Page 140: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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機能を利用して業務アプリケー

ションの後処理として作成する

- 132 -

Page 141: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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;

- 133 -

Page 142: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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) {

// 例外の処理をおこないます

・・・

}

- 134 -

Page 143: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

}

// サーバアプリケーションの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="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<aop:config>

- 135 -

Page 144: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<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 サーバ接続要求が拒否されました.” というエラーメッセージが出力された。

以下の可能性があります。

- 136 -

Page 145: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ 入力した“データソース名”、“接続ホスト名”、“接続ポート番号”に誤りがある可能性があります。設定情報を確認して誤りがある場

合は正しく修正してください。

・ 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が必須です。

- 137 -

Page 146: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

リクエストを受信して動作するメソッド以外でログを出力した場合、必須であるコンテキスト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>

- 138 -

Page 147: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第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

ワークユニット運用中にログ定義ファイルの修正を行った場合は、ワークユニットの再起動を行ってください。

- 139 -

Page 148: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■ログ定義ファイルの修正

インストール時のログ定義ファイルをもとに、記述内容の変更方法について説明します。

なお、定義の変更の詳細については、以下を参照してください。

・ “Interstage Business Application Server アプリケーション開発ガイド”の“汎用ログ”の“ログ定義ファイルを用いたログ出力”

・ “Interstage Business Application Server リファレンス”の“ログ定義ファイルリファレンス”

◆定義変更するログを選択する

logComposerタグのnameには、以下の管理名が記述されています。

ログの目的 管理名 説明

システムログ system アプリケーションの稼動状況や、エラー状況を出力します。

性能ログ performance特定の利用者による要求処理ごとのWebサーバ、およびアプリケーションサーバでの処

理時間を出力します。

◆標準ログの出力先を変更する

デフォルトの出力先を変更するには、ログ定義ファイルの出力先を変更します。

ログ定義ファイルを変更するには、変更する管理名の定義のparamタグを変更してください。出力先の変更の詳細については、“InterstageBusiness 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>

- 140 -

Page 149: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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クラスから応答

が返った時間を表示。

- 141 -

Page 150: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

ログレベル 出力情報

開始時間は、Servlet/JSPを呼び出す直前の時間、終了時間は、Servlet/JSPから応答が返った時間を表示。

開始時間は、Validatorクラスを呼び出す直前の時間、終了時間は、Validatorクラスから応答が返った時間

を表示。

SpringFrameworkにおける性能ログのログレベル

ログレベル 出力情報

3 開始時間は、Spring-MVCを開始した直後の時間、終了時間は、Spring-MVCから応答を返す時間を表

示。

開始時間は、リモート接続先のIJServerを呼び出す直前の時間、終了時間は、リモート接続先のIJServerから応答が返った時間を表示。

開始時間は、リモート接続を開始した直後の時間、終了時間は、リモート接続から応答を返す時間を表示。

開始時間は、リモート環境下にあるクラスを呼び出す直前の時間、終了時間は、リモート環境下にあるクラ

スから応答が返った時間を表示。

15 開始時間は、Springが提供するControllerからクラスを呼び出す直前の時間、終了時間は、呼びだしたクラ

スから応答が返った時間を表示。

開始時間は、ユーザ作成のControllerクラスを呼び出す直前の時間、終了時間は、ユーザ作成のControllerクラスから応答が返った時間を表示。

開始時間は、Servlet/JSPを呼び出す直前の時間、終了時間は、Servlet/JSPから応答が返った時間を表示。

開始時間は、Validatorクラスを呼び出す直前の時間、終了時間は、Validatorクラスから応答が返った時間

を表示。

iBATISにおける性能ログのログレベル

ログレベル 出力情報

5 開始時間は、iBATISのSQL文発行メソッドを呼び出す直前の時間、終了時間は、iBATISのSQL文発行メ

ソッドから応答が返った時間を表示。

15 開始時間は、SQL発行を呼び出す直前の時間、終了時間は、SQL発行処理から応答が返った時間を表

示。

出力情報の詳細については、” 7.5 標準ログの基本フォーマットおよび7.6 標準ログのメッセージ本文”を参照してください。

7.4 サブシステム名

性能ログのセション情報に、WEBアプリケーション単位でサブシステム名を出力することができます。

以下に、設定方法を示します。apfwlog.propertiesに以下のパラメタを追加します。

No. パラメタ名 値 説明

1 apfwlog.subSystemID 7文字以内の半角英数字を指

定します。

性能ログで出力するセション情報のサブシステム名

です。

省略すると、セション情報にサブシステム名が出力さ

れません。

サブシステム名を設定して有効にする場合、アプリケーションをワークユニットに再配備してください。

- 142 -

Page 151: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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フレームワークのクラスのメソッド名

- 143 -

Page 152: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

No. 項目名 定義名 出力内容

4 ログレベル %l ログの重要度

5 %記号 %% %記号

6 コンテキストID %i オープンJavaフレームワークから引き継いだコンテキストIDを常にメッセー

ジ本文の前へ出力します。

本情報は、コンテキストIDが確定した段階で出力されます。

また、出力される文字列は、大括弧“[]”で括られます。

なお、本項目の出力内容には空白が含まれる場合があります。

出力例: [ID 001]

7 メッセージ本文 %m 出力するログによって可変です。

基本フォーマットの設定の詳細については、“Interstage Business Application Server アプリケーション開発ガイド”の“汎用ログ”の“ログ

のフォーマットの設定”を参照してください。

7.6 標準ログのメッセージ本文

7.6.1 システムログ

システムログは、オープンJavaフレームワークの稼働状態を表すインフォメーションログや、エラー情報を表すエラーログを表します。

システムログのメッセージ本文には、以下に示すフォーマットでメッセージが出力されます。

図7.3 Strutsが出力するシステムログのフォーマット

図7.4 SpringFrameworkが出力するシステムログのフォーマット

- 144 -

Page 153: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図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開始 8300 3 ActionServlet-Call

- 145 -

Page 154: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

ActionServlet終了 8301 3 ActionServlet-Return

Actionクラス呼出し直前 8302 15 Action-Class-Call

Actionクラス終了直後 8303 15 Action-Class-Return

Servlet/JSP呼出し直前 8304 15 Struts-View-Call

Servlet/JSP終了直後 8305 15 Struts-View-Return

Validatorクラス呼出し直前 8306 15 Struts-Validator-Call

Validatorクラス終了直後 8307 15 Struts-Validator-Return

SpringFrameworkにおけるシステムログの出力契機

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

spring-MVC入口 8341 3 Spring-MVC-Call

spring-MVC終了 8342 3 Spring-MVC-Return

Springが提供するControllerから呼び出されるク

ラス呼出し直前

8343 15 Spring-Controller-Call

Springが提供するControllerから呼び出されるク

ラス終了直後

8344 15 Spring-Controller-Return

ユーザ作成のControllerクラス呼出し直前 8345 15 Controller-Class-Call

ユーザ作成のControllerクラス終了直後 8346 15 Controller-Class-Return

Servlet/JSP呼出し直前 8347 15 Spring-View-Call

Servlet/JSP終了直後 8348 15 Spring-View-Return

Validatorクラス呼出し直前 8349 15 Spring-Validator-Call

Validatorクラス終了直後 8350 15 Spring-Validator-Return

リモート呼出し直前 8351 3 Spring-Remote-Call

リモート終了直後 8352 3 Spring-Remote-Return

リモート入口 8353 3 Spring-Remote-Receive

リモート終了 8354 3 Spring-Remote-Reply

リモート環境下にあるクラス呼び出し直前 8355 3 Remote-Class-Call

リモート環境下にあるクラス終了直後 8356 3 Remote-Class-Return

iBATISにおけるシステムログの出力契機

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

iBATISのSQL文発行メソッド実行の入口 8381 5 iBATIS-Call

iBATISのSQL文発行メソッド実行の出口 8382 5 iBATIS-Return

SQL実行直前 8383 15 iBATIS-SQL-Call

SQL実行直後 8384 15 iBATIS-SQL-Return

■出力例

以下の条件におけるシステムログの出力例を示します。

・ コンテキストID:ContextID

・ 出力契機:ActionServlet-Call

- 146 -

Page 155: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

・ メッセージID:8300

2009/04/21 19:07:11.377 [ContextID] IBS-AP-SYSTEM ActionServlet-Call 8300 [/test.war] ActionPath="/testAction"

7.6.2 性能ログ

性能ログは、オープンJavaフレームワーク内部での実行時間を表します。

性能ログのメッセージ本文には、以下に示すフォーマットでメッセージを出力します。

図7.6 Strutsが出力する性能ログのフォーマット

図7.7 SpringFrameworkが出力する性能ログのフォーマット

- 147 -

Page 156: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

図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:07.484 2004/11/05 19:07:11.377

- 148 -

Page 157: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

各項目の出力内容のなかに空白が含まれることがあります。

■セション情報

オープンJavaフレームワークで出力されるセション情報は以下の2つがあります。

No. 項目名 定義名 長さ 出力内容

1 ホスト名 session.hostName 16 ホスト名が出力されます。

2 サブシステム名 session.subSystemID 7 オープンJavaフレームワークを識別する情

報を出力します。(注1)

注1) オープンJavaフレームワークのランタイムが出力する性能ログのサブシステム名は、以下のようになります。

オープンJavaフレームワーク名 サブシステム名

Struts Struts

SpringFramework Spring

iBATIS iBATIS

■ログの出力契機

性能ログは、以下の表に示す契機で出力されます。

Strutsにおける性能ログの出力契機

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

ActionServlet終了 8500 3 ActionServlet

Actionクラス終了直後 8501 15 Action-Class

Servlet/JSP終了直後 8502 15 Struts-View

Validatorクラス終了直後 8503 15 Struts-Validator

SpringFrameworkにおける性能ログの出力契機

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

spring-MVC終了 8541 3 Spring-MVC

Springが提供するControllerから呼び出されるク

ラス終了直後

8542 15 Spring-Controller

ユーザ作成のControllerクラス終了直後 8543 15 Controller-Class

Servlet/JSP終了直後 8544 15 Spring-View

Validatorクラス終了直後 8545 15 Spring-Validator

リモート終了直後 8546 3 Spring-Remote

リモート終了 8547 3 Spring-Remote-App

リモート環境下にあるクラス終了直後 8548 3 Remote-Class

iBATISにおける性能ログの出力契機

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

iBATISのSQL文発行メソッド実行の出口 8581 5 iBATIS

- 149 -

Page 158: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

ログ出力契機 メッセージID ログの出力レベル 採取契機の出力内容

SQL実行直後 8582 15 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:11.377 [ContextID] IBS-AP-PERFORMANCE ActionServlet 8500 [/test.war] host1 Struts 2009/05/0119:07:07:484 2009/05/01 19:07:11:377 3893

7.7 注意事項

■開発環境における標準ログの動作について

開発環境において、Interstage Studioのアプリケーションサーバ上でオープンJavaフレームワークを利用した場合、システムログ、およ

び性能ログを出力することはできません。

FSP_INTS-BAS_JF6010の警告が表示されますが、問題ありません。

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

■性能ログおよびシステムログを出力することができない

以下の可能性があります。

・ 性能ログ、システムログの出力に必要な資材がIJServerのクラスパスに設定されていない可能性があります。IJServerのクラスパス

を確認してください。

- 150 -

Page 159: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

第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. アプリケーションサーバの起動

8.2.1 アプリケーションサーバの停止

Interstage管理コンソールまたはisstopコマンドを使用し、Interstageを強制停止します。

詳細は“Interstage Application Server 運用ガイド(基本編)”を参照してください。

8.2.2 アプリケーションサーバ環境資源のバックアップ

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 運用ガイド(アプリケーション連携実行基盤編)”の“ユーザログ定義資源のバックアップ”を参

照してください。

- 151 -

Page 160: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

8.2.3 アプリケーションサーバの起動

処理前に停止したサービスを、Interstage管理コンソールまたはisstartコマンドで起動します。

詳細は“Interstage Application Server 運用ガイド(基本編)”を参照してください。

8.3 リストアの手順

オープンJavaフレームワークにおけるリストアの作業の流れを以下に示します。

1. アプリケーションサーバの停止

2. アプリケーションサーバ環境資源のリストア

3. アプリケーションサーバの起動

8.3.1 アプリケーションサーバの停止

Interstage管理コンソールまたはisstopコマンドを使用し、Interstageを強制停止します。

詳細は“Interstage Application Server 運用ガイド(基本編)”を参照してください。

8.3.2 アプリケーションサーバ環境資源のリストア

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 運用ガイド(アプリケーション連携実行基盤編)”の“ユーザログ定義資源のリストア”を参照して

ください。

8.3.3 アプリケーションサーバの起動

処理前に停止したサービスを、Interstage管理コンソールまたはisstartコマンドで起動します。

詳細は“Interstage Application Server 運用ガイド(基本編)”を参照してください。

8.4 クラスタ構成

クラスタについての詳細は、“Interstage Application Server 高信頼性システム運用ガイド”を参照してください。

- 152 -

Page 161: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

付録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 サンプルの構成

このサンプルは、ブランクプロジェクトをもとに、追加・修正を行って作成しています。

このサンプルでは、以下のことが行えます。

項目 説明

ログオン/ログオフ ビジネスロジッククラスの実行方法とユーザーバリューオブジェクトの使用方法

画面分岐 画面のボタンによる分岐方法

登録処理 データベースアクセス

一覧表示 一覧表示の実装方法

入力チェック(単項目) 単項目チェックの実装方法

入力チェック(相関) 相関チェックの実装方法

アクセス制御 ログオン済みチェック方法

■変更点

ブランクプロジェクトからの変更点について、以下に記載します。

- 153 -

Page 162: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

変更を加えた設定ファイル

ファイル名 説明 変更した箇所

sqlMap.xml SQL設定ファイル。

SQL文を設定する。

SQL文の追加

commonContext.xml Spring設定ファイル。

モジュール共通のBean定義ファイル。

トランザクション・AOP定義

applicationContext.xml Spring設定ファイル。

アプリケーション全体のBean定義ファイル。

各種フィルタコントローラ定義

struts-config.xml Struts設定ファイル。

アクションフォームやアクションパスの設定を

行う。

プラグイン定義

・ SpringBean設定ファイル

・ バリデーション設定ファイル

・ 入出力設定ファイル

web.xml Webアプリケーション設定ファイル。フィルタの

設定を行う。

サーブレット定義

各業務の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 Struts設定ファイル

ContextRoot\WEB-INF\logon\logonContext.xml Spring設定ファイル

ContextRoot\WEB-INF\logon\validation-logon.xml バリデーション設定ファイル

- 154 -

Page 163: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

ファイル名 説明

ContextRoot\WEB-INF\logon\blogic-logon-io.xml 入出力設定ファイル

ContextRoot\WEB-INF\userManager\struts-userManager-config.xml Struts設定ファイル

ContextRoot\WEB-INF\userManager\userManagerContext.xml Spring設定ファイル

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 情報保持Bean

データベースからの取得時に画面か

らの入力時に使用される。

変更内容の詳細については、TERASOLUNAのドキュメント(チュートリアル)を参照してください。

■Javaのビルドパスの修正

サンプルでは、Interstageを“C:\Interstage”にインストールされたものとして、あらかじめJavaのビルドパスを設定してあります。

Interstageを“C:\Interstage”以外のディレクトリにインストールした場合は、Javaのビルドバスを修正してください。

A.2.2 動作方法

サンプルを実行するための手順を説明します。

1. データベースの作成

2. JDBCデータソースの作成

- 155 -

Page 164: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

3. IJServerワークユニットの作成

4. 配備

5. 実行

1. データベースの作成

データベースを作成します。

サンプル用テーブルの作成については、サンプルプロジェクトに含まれるスクリプトを利用してください。

2. JDBCデータソースの作成

Interstage管理コンソールを使用し、JDBCデータソースを作成します。

[Interstage Application Server]>[システム]>[リソース]>[JDBC]を選択し、新規作成を行います。

定義名:TerasolunaWebSampleDataSourceとし、それ以外については、使用するデータベースに合わせて、JDBCデータソースを作成

してください。

なお、ここに作成するデータソースの内容と、サンプルプロジェクト内のcontext.xmlの記載内容を一致させてください。

3. IJServerワークユニットの作成

Interstage管理コンソールを使用し、IJServerワークユニットを作成します。

[Interstage Application Server]>[システム]>[ワークユニット]を選択し、新規作成を行います。

また、“5.2.2 クラスパスの設定”で説明しているクラスパスを追加します。

4. 配備

作成したIJServerワークユニットに、サンプルプロジェクトでビルドしたwarを配備します。

5. 実行

“http://localhost/ISTerasolunaWebSample/”にアクセスし、サンプルを実行します。

動作確認方法の詳細については、TERASOULAのドキュメント(チュートリアル)を参照してください。

A.3 TERASOLUNA Server Framework for Java (Rich版)のサンプル

ここでは、TERASOLUNA Server Framework for Java(Rich版)のサンプルの構成および動作方法を説明します。

サンプルの詳細については、TERASOLUNAのドキュメント(チュートリアル)を参照してください。

A.3.1 サンプルの構成

このサンプルは、ブランクプロジェクトをもとに、追加・修正を行って作成しています。

このサンプルでは、以下のことが行えます。

項目 説明

単純なロジック クライアントからのリクエスト処理

データベースアクセス データベースからのデータ取得やデータ更新

入力チェック(単項目) 単項目チェックの実装

入力チェック(相関) 相関チェックの実装

例外処理 例外発生時の対処

アクセス制御 特定のパスへのアクセス制御

- 156 -

Page 165: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■変更点

ブランクプロジェクトからの変更点について、以下に記載します。

ブランクプロジェクトから名前変更を行ったファイル

リネーム前 リネーム後

blank-businessLogic.xml sample-businessLogic.xml

blank-controller.xml sample-controller.xml

blank-servlet.xml sample-servlet.xml

変更を加えた設定ファイル

ファイル名 説明 変更した箇所

sqlMap.xml SQL設定ファイル。

SQL文を設定する。

SQL文の追加

validation.xml バリデーション設定ファイル。 formsetタグ内

commonContext.xml Spring設定ファイル。

AOPのBean定義ファイル。

トランザクション・AOP定義

AOPの定義

applicationContext.xml Spring設定ファイル。

アプリケーション全体のBean定義

ファイル。

入力チェック定義

sample-businessLogic.xml Spring設定ファイル。

モジュール固有のBean定義ファイ

ル。

業務ロジック定義

・ 単純なロジックsimpleService定義

・ デ ー タ ベ ー ス ア ク セ ス

dbAccessService定義

sample-controller.xml Spring設定ファイル。

モジュール固有のBean定義ファイ

ル。

コントローラ定義

・ 単純なロジックxml-BLogic-castor定義

・ データベースアクセス xml-BLogic-caster定義

sample-setvlet.xml Spring設定ファイル。

プレゼンテーション層共通のBean定義ファイル。

オブジェクト-XMLマッピング定義

BLogicコントローラ定義

web.xml Webアプリケーション設定ファイル。

フィルタの設定を行う。

サーブレットマッピング定義

エラーリソース定義

変更を加えたファイル

ファイル名 説明 変更した箇所

application-messages.properties メッセージリソースファイル 共通

Validation

例外制御で使うメッセージ

- 157 -

Page 166: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

追加作成したファイル

ファイル名 説明

jp.terasoluna.rich.sample.service.bean.UserBean ユーザ情報保持Bean

入力クラス・データベースからの取得時に

使用される。

jp.terasoluna.rich.sample.service.bean.ResultData 結果クラス

jp.terasoluna.rich.sample.service.blogic.SimpleBLogic 入力クラスを結果クラスに格納するBLogicクラス

jp.terasoluna.rich.sample.service.blogic.DBAccessBLogic データベースアクセスのBLogicクラス

jp.terasoluna.rich.sample.service.validation.AgeValidator 入力された年齢と、生年月日の相関入力

チェックを行う。

変更内容の詳細については、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]>[システム]>[ワークユニット]を選択し、新規作成を行います。

また、“5.2.2 クラスパスの設定”で説明しているクラスパスを追加します。

4. 配備

作成したIJServerワークユニットに、サンプルプロジェクトでビルドしたwarを配備します。

- 158 -

Page 167: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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”が残っている場合は、削除します。

- 159 -

Page 168: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

ファイルパスの修正

サンプルでは、Interstageを“C:\Interstage”にインストールされたものとして、あらかじめファイルパスを設定しています。

Interstageを“C:\Interstage”以外のディレクトリにインストールした場合は、“5.3.2 ファイルパスの修正”を参照してファイルパスを修正し

てください。

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;

- 160 -

Page 169: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

/**

*ジョブの実行が失敗したことを示します。

*/

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 = -2914225006698774210L;

@Override protected void service(HttpServletRequest rq, HttpServletResponse rs) throws ServletException,

IOException{

- 161 -

Page 170: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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>

- 162 -

Page 171: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

</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;

- 163 -

Page 172: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:util="http://www.springframework.org/schema/util"

xsi:schemaLocation=

"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">

<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. データベースの作成

- 164 -

Page 173: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

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]>[システム]>[ワークユニット]を選択し、新規作成を行います。

また、“5.2.2 クラスパスの設定”で説明しているクラスパスを追加します。

サンプルの配備

作成したIJServerワークユニットに、サンプルプロジェクトでビルドしたwarを配備します。

サンプルの実行

“http://localhost/ISTerasolunaBatchSample/”にアクセスすると、次の画面が表示されます。

続いて、 [非同期ジョブの実行]を実行します。

サンプルの実行結果の確認

ジョブの実行に成功すると、次の画面が表示されます。

- 165 -

Page 174: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

また、コンテナログに、次のログが出力されていれば、ジョブが正常に実行されたことを示します。

job.job001.SampleBLogic: data=data1

job.job001.SampleBLogic: data=data2

job.job001.SampleBLogic: data=data3

Job processing END : [jobId=SampleJob] [jobRequestNo=] [StartType=SYNC] [jobExitCode=0]

- 166 -

Page 175: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

付録B 謝辞、免責文、ライセンス文

ここでは、Interstage Business Application Server オープンJavaフレームワーク機能に関わる謝辞、免責文そしてライセンス文について

記載します。

B.1 Apache Licenseのライセンス文

本製品は、Apache License Version 2.0のもとで開発されたソフトウェアを含んでいます。

以下にApache License Version 2.0のライセンス文を示します。

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,

and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by

the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all

other entities that control, are controlled by, or are under common

control with that entity. For the purposes of this definition,

"control" means (i) the power, direct or indirect, to cause the

direction or management of such entity, whether by contract or

otherwise, or (ii) ownership of fifty percent (50%) or more of the

outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity

exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,

including but not limited to software source code, documentation

source, and configuration files.

"Object" form shall mean any form resulting from mechanical

- 167 -

Page 176: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

transformation or translation of a Source form, including but

not limited to compiled object code, generated documentation,

and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or

Object form, made available under the License, as indicated by a

copyright notice that is included in or attached to the work

(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object

form, that is based on (or derived from) the Work and for which the

editorial revisions, annotations, elaborations, or other modifications

represent, as a whole, an original work of authorship. For the purposes

of this License, Derivative Works shall not include works that remain

separable from, or merely link (or bind by name) to the interfaces of,

the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including

the original version of the Work and any modifications or additions

to that Work or Derivative Works thereof, that is intentionally

submitted to Licensor for inclusion in the Work by the copyright owner

or by an individual or Legal Entity authorized to submit on behalf of

the copyright owner. For the purposes of this definition, "submitted"

means any form of electronic, verbal, or written communication sent

to the Licensor or its representatives, including but not limited to

communication on electronic mailing lists, source code control systems,

and issue tracking systems that are managed by, or on behalf of, the

Licensor for the purpose of discussing and improving the Work, but

excluding communication that is conspicuously marked or otherwise

designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity

on behalf of whom a Contribution has been received by Licensor and

subsequently incorporated within the Work.

- 168 -

Page 177: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

2. Grant of Copyright License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

copyright license to reproduce, prepare Derivative Works of,

publicly display, publicly perform, sublicense, and distribute the

Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

(except as stated in this section) patent license to make, have made,

use, offer to sell, sell, import, and otherwise transfer the Work,

where such license applies only to those patent claims licensable

by such Contributor that are necessarily infringed by their

Contribution(s) alone or by combination of their Contribution(s)

with the Work to which such Contribution(s) was submitted. If You

institute patent litigation against any entity (including a

cross-claim or counterclaim in a lawsuit) alleging that the Work

or a Contribution incorporated within the Work constitutes direct

or contributory patent infringement, then any patent licenses

granted to You under this License for that Work shall terminate

as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the

Work or Derivative Works thereof in any medium, with or without

modifications, and in Source or Object form, provided that You

meet the following conditions:

(a) You must give any other recipients of the Work or

Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices

stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works

- 169 -

Page 178: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

that You distribute, all copyright, patent, trademark, and

attribution notices from the Source form of the Work,

excluding those notices that do not pertain to any part of

the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its

distribution, then any Derivative Works that You distribute must

include a readable copy of the attribution notices contained

within such NOTICE file, excluding those notices that do not

pertain to any part of the Derivative Works, in at least one

of the following places: within a NOTICE text file distributed

as part of the Derivative Works; within the Source form or

documentation, if provided along with the Derivative Works; or,

within a display generated by the Derivative Works, if and

wherever such third-party notices normally appear. The contents

of the NOTICE file are for informational purposes only and

do not modify the License. You may add Your own attribution

notices within Derivative Works that You distribute, alongside

or as an addendum to the NOTICE text from the Work, provided

that such additional attribution notices cannot be construed

as modifying the License.

You may add Your own copyright statement to Your modifications and

may provide additional or different license terms and conditions

for use, reproduction, or distribution of Your modifications, or

for any such Derivative Works as a whole, provided Your use,

reproduction, and distribution of the Work otherwise complies with

the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,

any Contribution intentionally submitted for inclusion in the Work

by You to the Licensor shall be under the terms and conditions of

this License, without any additional terms or conditions.

Notwithstanding the above, nothing herein shall supersede or modify

- 170 -

Page 179: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

the terms of any separate license agreement you may have executed

with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade

names, trademarks, service marks, or product names of the Licensor,

except as required for reasonable and customary use in describing the

origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or

agreed to in writing, Licensor provides the Work (and each

Contributor provides its Contributions) on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

implied, including, without limitation, any warranties or conditions

of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

PARTICULAR PURPOSE. You are solely responsible for determining the

appropriateness of using or redistributing the Work and assume any

risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,

whether in tort (including negligence), contract, or otherwise,

unless required by applicable law (such as deliberate and grossly

negligent acts) or agreed to in writing, shall any Contributor be

liable to You for damages, including any direct, indirect, special,

incidental, or consequential damages of any character arising as a

result of this License or out of the use or inability to use the

Work (including but not limited to damages for loss of goodwill,

work stoppage, computer failure or malfunction, or any and all

other commercial damages or losses), even if such Contributor

has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing

the Work or Derivative Works thereof, You may choose to offer,

and charge a fee for, acceptance of support, warranty, indemnity,

or other liability obligations and/or rights consistent with this

- 171 -

Page 180: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

License. However, in accepting such obligations, You may act only

on Your own behalf and on Your sole responsibility, not on behalf

of any other Contributor, and only if You agree to indemnify,

defend, and hold each Contributor harmless for any liability

incurred by, or claims asserted against, such Contributor by reason

of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following

boilerplate notice, with the fields enclosed by brackets "[]"

replaced with your own identifying information. (Don't include

the brackets!) The text should be enclosed in the appropriate

comment syntax for the file format. We also recommend that a

file or class name and description of purpose be included on the

same "printed page" as the copyright notice for easier

identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

B.2 AspectJのライセンス文

本製品に含まれる以下のモジュールは、Eclipse Public Licenseの適用対象であるソフトウェアです。

- 172 -

Page 181: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<インストールディレクトリ>¥BAS¥lib¥aspectjweaver.jar

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.aspectj.ajde_1.5.4.200705211336

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.aspectj.runtime_1.5.4.200705211336

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.aspectj.weaver_1.5.4.200705211336

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.eclipse.ajdt.examples_1.4.2.200705221209

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.eclipse.ajdt.pde.build_1.4.2.200705221209

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.aspectj.aspectjrt_1.6.0.v200805211800.jar

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.aspectj.weaver-1.6.4.jar

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.eclipse.ajdt.core_1.4.2.200705221209.jar

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.eclipse.ajdt.ui_1.4.2.200705221209.jar

<開発環境インストールディレクトリ>\IDE\0902\eclipse\plugins\org.eclipse.aspectj_1.4.2.200705221209.jar

<開発環境インストールディレクトリ>¥BAS¥lib¥aspectjweaver.jar

/opt/FJSVibs/lib/aspectjweaver.jar

Eclipse Public License 対象のファイルについては、要請に応じてソースコードの提供を行います。ソースコードを必要とする方は弊社

営業までご連絡ください。

以下にAspectJのライセンス文を示します。

AspectJTM Compiler and Core Tools License

This is a binary-only release.~ Source code is available from http://eclipse.org/aspectj

The Eclipse Foundation makes available all content in this distribution ("Content"). Unless otherwise indicated below, the Content isprovided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available athttp://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.

If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor'slicense that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, theterms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at http://www.eclipse.org.

Third Party Content

The Content includes items that have been sourced from third parties as set out below. If you did not receive this Content directly fromthe Eclipse Foundation, the following is provided for informational purposes only, and you should look to the RedistributorÕs licensefor terms and conditions of use.

BCEL v5.1

This product contains software developed by the Apache Software Foundation (http://www.apache.org).

AspectJ includes a modified version of the Apache Jakarta Byte Code Engineering Library (BCEL) v5.1. BCEL is available at http://jakarta.apache.org/bcel/. Source code for the modified version of BCEL is available at Eclipse.org in the AspectJ source tree. This codeis made available under the Apache Software License v1.1

ASM v2.2.1

AspectJ includes a binary version of ASM v2.2.1 (http://asm.objectweb.org/) The source code for ASM is available from the ObjectWebdownload site at http://asm.objectweb.org/download/.

The ASM license is available at http://asm.objectweb.org/license.html. The license is also reproduced here:

Copyright (c) 2000-2005 INRIA, France Telecom

- 173 -

Page 182: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holders nor the names of its

contributors may be used to endorse or promote products derived from

this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE

LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR

CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF

SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN

CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF

THE POSSIBILITY OF SUCH DAMAGE.

B.3 Spring IDEのライセンス文

本製品に含まれる以下のモジュールは、Eclipse Public Licenseの適用対象であるソフトウェア Spring IDE の派生物です。

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\features\org.springframework.ide.eclipse.ajdt.feature_2.0.6

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\features\org.springframework.ide.eclipse.aop.feature_2.0.6

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\features\org.springframework.ide.eclipse.autowire.feature_2.0.6

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\features\org.springframework.ide.eclipse.dependency.feature_2.0.6

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\features\org.springframework.ide.eclipse.feature_2.0.6

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.ajdt.ui.visualiser_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.ajdt.ui.xref_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.aop.core_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.aop.ui_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.beans.core.autowire_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.beans.core_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.beans.ui.editor_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.beans.ui.graph_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.beans.ui.search_2.0.6.jar

- 174 -

Page 183: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.beans.ui_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.core_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse.ui_2.0.6.jar

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.springframework.ide.eclipse_2.0.6.jar

Eclipse Public License 対象のファイルについては、要請に応じてソースコードの提供を行います。ソースコードを必要とする方は弊社

営業までご連絡ください。

以下にEclipse Public Licenseのライセンス文を示します。

Eclipse Public License - v 1.0

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'SACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS

"Contribution" means:

a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and

b) in the case of each subsequent Contributor:

i) changes to the Program, and

ii) additions to the Program;

where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf.Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with theProgram under their own license agreement, and (ii) are not derivative works of the Program.

"Contributor" means any person or entity that distributes the Program.

"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contributionalone or when combined with the Program.

"Program" means the Contributions distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.

2. GRANT OF RIGHTS

a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyrightlicense to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of suchContributor, if any, and such derivative works, in source code and object code form.

b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patentlicense under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, ifany, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, atthe time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by theLicensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se islicensed hereunder.

c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances areprovided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. EachContributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual propertyrights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes soleresponsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required toallow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.

d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyrightlicense set forth in this Agreement.

3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

- 175 -

Page 184: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties orconditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental andconsequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonablemanner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequentRecipients to identify the originator of the Contribution.

4. COMMERCIAL DISTRIBUTION

Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. Whilethis license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercialproduct offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributorincludes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend andindemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arisingfrom claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by theacts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering.The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement.In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b)allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlementnegotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then aCommercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X,those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the CommercialContributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if acourt requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUTLIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY ORFITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using anddistributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited tothe risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, andunavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALLHAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTSGRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL

- 176 -

Page 185: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability ofthe remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to theminimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Programitself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then suchRecipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of thisAgreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient'srights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable.However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continueand survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrightedand may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (includingrevisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. TheEclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the AgreementSteward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program(including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition,after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) underthe new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectualproperty of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Programnot expressly granted under this Agreement are reserved.

This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America.No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Eachparty waives its rights to a jury trial in any resulting litigation.

B.4 ASMのライセンス文

本製品に含まれる以下のモジュールは、ASMのライセンスの適用対象であるソフトウェアです。

<開発環境インストールディレクトリ>¥IDE\0902\eclipse\plugins\org.objectweb.asm_2.2.3.jar

以下にASMのライセンス文を示します。

Copyright (c) 2000-2005 INRIA, France Telecom

All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holders nor the names of its

- 177 -

Page 186: Interstage Business Application Server V9.2software.fujitsu.com/jp/manual/manualfiles/M090098/B1X...付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

contributors may be used to endorse or promote products derived from

this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE

LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR

CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF

SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS

INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN

CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF

THE POSSIBILITY OF SUCH DAMAGE.

- 178 -