• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

シェア "オープンJavaフレームワーク ユーザーズガイド Java EE 7編"

Copied!
241
0
0

読み込み中.... (全文を見る)

全文

(1)

B1X1-0379-02Z0(00)

2018

7

Windows/Solaris/Linux

FUJITSU Software

Interstage Business Application Server

オープン

Java

フレームワーク

(2)

まえがき

■本書の目的

本書は、“Interstage Business Application Server オープンJavaフレームワーク ユーザーズガイド Java EE 7編”です。

本書は、Interstage Business Application ServerがInterstage Java EE 7上で提供するオープンJavaフレームワークについて説明します。 本書は、以下の方を対象にしています。

システム構築担当者、アプリ開発者、運用設計者

■前提知識

本書を読む場合、以下の知識が必要です。

使用するOSに関する基本的な知識

Javaに関する基本的な知識

Java EEに関する基本的な知識

インターネットに関する基本的な知識

リレーショナルデータベースに関する基本的な知識

Interstage Application Serverに関する基本的な知識

Interstage Studioに関する以下の知識

Webアプリケーション開発

TERASOLUNAに関する基本的な知識

Spring Frameworkに関する基本的な知識

Spring Batchに関する基本的な知識

MyBatisに関する基本的な知識

Strutsに関する基本的な知識

■本書の構成

本書は、以下のように構成されています。 第1章 概要

Interstage Business Application ServerがJava EE 7上で提供するオープンJavaフレームワークの概要について説明します。

第2章 TERASOLUNA Server Framework for Java (5.x)

TERASOLUNA Server Framework for Java (5.x) を使用したWebアプリケーションの開発について説明します。

第3章 Spring Framework 4.3 Spring Frameworkを使用した業務アプリケーションの開発について説明します。 第4章 Spring Batch 3.0 Spring Batchを使用したBatchアプリケーションの開発について説明します。 第5章 MyBatis 3.4 MyBatisを使用したデータアクセス層のアプリケーションの開発について説明します。 第6章 Struts 1.2 Struts 1.2を使用したWebアプリケーションの開発について説明します。 第7章 Struts 1.3 Struts 1.3を使用したWebアプリケーションの開発について説明します。 第8章 トラブルシューティング オープンJavaフレームワークの利用で問題が発生した際に確認すべき点について説明します。

(3)

第9章 バックアップ・リストアおよびクラスタ バックアップ・リストアおよびクラスタの利用について説明します。 付録A クラスパス設定サポート用Jarファイル オープンJavaフレームワークで提供するクラスパス設定サポート用Jarファイルの内容を説明しています。 付録B 謝辞、免責文、ライセンス文 オープンJavaフレームワークに関わる謝辞、免責文そしてライセンス文について記載しています。

■輸出管理規制について

本ドキュメントを輸出または第三者へ提供する場合は、お客様が居住する国および米国輸出管理関連法規等の規制をご確認のうえ、必要 な手続きをおとりください。

■著作権

Copyright 2018 FUJITSU LIMITED

(4)

目 次

第1章概要... 1

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

1.2 動作環境... 1 1.2.1 アプリケーション開発時に必要なソフトウェア...1 1.2.2 アプリケーション実行時に必要なソフトウェア...1 1.2.3 資源要件... 2 1.3 運用モデル...3 1.3.1 基本的な構成...3

第2章 TERASOLUNA Server Framework for Java (5.x)... 4

2.1 TERASOLUNA Server Framework for Java (5.x)の概要...4

2.1.1 主な構成要素...4

2.1.2 Interstage Business Application Serverにおける提供ライブラリ... 4

2.2 OSS版TERASOLUNA Server Framework for Java (5.x)との差異...6

2.3 TERASOLUNA Server Framework for Java (5.x)の機能...9

2.3.1 Webアプリ開発機能... 9 2.3.2 Web Service... 9 2.3.3 データアクセス...9 2.3.4 アプリケーション形態に依存しない汎用機能... 9 2.3.5 メッセージ連携... 9 2.3.6 セキュリティ対策... 10 2.4 アプリケーションの開発... 10 2.4.1 開発環境の作成...10 2.4.2 雛形とするアプリケーション開発プロジェクトの選択...10 2.4.3 アプリケーション開発プロジェクトの作成...10 2.4.3.1 アプリケーションをビルドするためのクラスパスの変更... 11 2.4.3.2 プロジェクト名の変更...11 2.4.3.3 bean定義ファイル名の変更...12 2.4.3.4 JSPファイル内に記述されているアプリケーション名の変更... 12 2.4.3.5 Javaパッケージ名の変更...13 2.4.4 アプリケーションプロジェクト作成後の処置...13 2.4.4.1 DB関連の設定箇所の修正... 13 2.4.5 アプリケーションのクラスパスの設定...13 2.4.6 アプリケーションの実装... 15 2.4.7 アプリケーションのビルド・デバッグ... 15 2.5 環境作成... 15 2.5.1 IJServerクラスタの作成... 15 2.5.2 JDBCドライバの環境設定... 16 2.5.3 データソースの登録... 16 2.6 運用・保守... 17 2.6.1 アプリケーションの配備... 17 2.6.2 起動・停止... 17 2.6.3 ログ...17 2.7 旧バージョン・レベルからの移行... 18 2.7.1 V12.0.0からの移行... 19 第3章 Spring Framework 4.3... 20 3.1 Spring Framework 4.3の概要...20 3.2 OSS版Spring Framework 4.3との差異... 20 3.3 Spring Framework 4.3の機能...21 3.3.1 基本機能... 21 3.3.1.1 DIコンテナ... 21 3.3.1.2 型変換... 22

3.3.1.3 Spring Expression Language(SpEL)... 22

3.3.2 テスト支援機能... 23

(5)

3.3.3 データアクセス...24

3.3.3.1 トランザクション制御... 24

3.3.3.2 Data Access Object(DAO)...24

3.3.3.3 JDBCにおけるデータアクセス... 24 3.3.3.4 O/Rマッピング連携(Hibernate)... 25 3.3.3.5 O/Rマッピング連携(JPA)... 28 3.3.3.6 O/Rマッピング連携(MyBatis)... 31 3.3.3.7 Object/XMLマッピング連携...34 3.3.4 Web機能... 35 3.3.4.1 MVCフレームワーク... 35

3.3.4.2 JavaScript Object Notation(JSON)... 36

3.3.4.3 WebSocket連携... 38 3.3.5 インテグレーション... 39 3.3.5.1 REST...39 3.3.5.2 リモーティング... 40 3.3.5.3 EJB連携...43 3.3.5.4 Cache機能... 43 3.4 Spring Framework 4.3から廃止された機能... 44 3.5 アプリケーションの開発... 45 3.5.1 開発環境の作成...45 3.5.2 アプリケーション開発プロジェクトの作成...45 3.5.3 アプリケーションのクラスパスの設定...45 3.5.4 アプリケーションの実装... 48 3.5.4.1 基本的なアプリケーションの作成... 49 3.5.4.2 データベースにアクセスするアプリケーションの作成... 55 3.5.4.3 他フレームワークと連携するアプリケーションの作成...61 3.5.4.4 他アプリケーションと連携するアプリケーションの作成... 65 3.5.5 アプリケーションのビルド・デバッグ... 68

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

3.5.6.1 Spring Frameworkプロジェクトの作成... 68 3.5.6.2 Spring Bean 構成ファイルの作成... 73 3.5.6.3 Springプロジェクト・ネーチャーの追加... 77 3.5.6.4 複数の構成ファイルに分割する... 78 3.5.6.5 Spring エクスプローラービューの表示... 84 3.5.6.6 Spring構成ファイルをグラフィカルに表示する... 86 3.5.6.7 Spring AOPをグラフィカルに表示する... 86 3.6 環境作成... 88 3.6.1 IJServerクラスタの作成...88 3.6.2 JDBCドライバの環境設定... 89 3.6.3 データソースの登録... 89 3.7 運用・保守... 90 3.7.1 アプリケーションの配備... 90 3.7.2 起動・停止... 90 3.7.3 ログ...90 第4章 Spring Batch 3.0...92 4.1 Spring Batch 3.0の概要...92 4.2 Spring Batchアプリケーションの基本構成... 92 4.3 JobLauncherの呼び出し方法... 92 4.4 Spring Batch 3.0を利用する場合の考慮... 93 4.5 各起動方法におけるデータベースの接続設定...94 4.6 BatchアプリケーションのStep構成... 94 4.6.1 基本的なStep構成...94 4.6.2 条件分岐するStep構成... 95 4.7 Spring Batch 3.0の基本定義...95 4.7.1 JobRepository... 95 4.7.1.1 JobRepositoryの活用...96

(6)

4.7.2 JobLauncher...97 4.7.3 Job... 97 4.7.3.1 前提条件... 97 4.7.3.2 Job定義... 98 4.7.3.3 Jobの起動方法... 98 4.7.3.3.1 WebアプリケーションからJobを起動する場合... 98 4.7.3.3.2 コマンドラインからJobを起動する場合...99 4.7.3.3.3 終了ステータスの変更... 101 4.7.4 Step... 102 4.7.4.1 提供するStepモデル... 102 4.7.4.1.1 チャンクモデル... 102 4.7.4.1.2 commit-intervalについて... 104 4.7.4.1.3 JobExplorer定義(コマンドライン)... 104 4.7.5 ItemReader...104 4.7.5.1 対応形式... 104 4.7.5.2 csvファイルを使用する場合... 105 4.7.5.3 データベースを使用する場合(JDBC)... 107 4.7.5.4 データベースを使用する場合(Hibernate)... 108 4.7.5.5 データベースを使用する場合(JPA)... 109 4.7.5.6 データベースを使用する場合(MyBatis)... 109 4.7.6 ItemProcessor...111 4.7.7 ItemWriter...112 4.7.7.1 対応形式... 112 4.7.7.2 csvファイルを使用する場合... 112 4.7.7.3 データベースを使用する場合(JDBC)... 114 4.7.7.4 データベースを使用する場合(Hibernate)... 114 4.7.7.5 データベースを使用する場合(JPA)... 115 4.7.7.6 データベースを使用する場合(MyBatis)... 115 4.8 Spring Batch 3.0の拡張定義...116 4.8.1 条件分岐... 116 4.9 アプリケーションの開発... 118 4.9.1 開発環境の作成...118 4.9.2 アプリケーション開発プロジェクトの作成...118 4.9.3 アプリケーションのクラスパスの設定(Webアプリケーション)...118 4.9.4 アプリケーションの実装... 119 4.9.4.1 入出力にCSVファイルを使用するBatchアプリケーションの開発... 119 4.9.4.2 入出力にデータベースを使用するBatchアプリケーションの開発...122 4.9.4.3 条件分岐するBatchアプリケーションの開発... 131 4.9.5 アプリケーションのビルド・デバッグ... 134

4.9.6 Spring IDEによるSpring Batchアプリケーションの作成... 134

4.9.6.1 Spring Batchプロジェクトの作成...134 4.10 環境作成(Webアプリケーション)... 138 4.10.1 IJServerクラスタの作成...138 4.10.2 JDBCドライバの環境設定... 138 4.10.3 データソースの登録... 138 4.11 運用・保守... 139 4.11.1 アプリケーションの配備(Webアプリケーション)... 139 4.11.2 起動・停止(Webアプリケーション)... 139 4.11.3 ログ...140 第5章 MyBatis 3.4...142 5.1 MyBatisの概要... 142 5.2 OSS版MyBatisとの差異...143 5.3 MyBatisの機能... 143 5.3.1 O/Rマッピング...143 5.4 アプリケーションの開発... 143 5.4.1 SQL文の対応付けの設計...143

(7)

5.4.2 開発環境の作成...144 5.4.3 アプリケーション開発プロジェクトの作成...144 5.4.4 アプリケーションのクラスパスの設定...144 5.4.5 アプリケーションの実装... 145 5.4.5.1 MyBatisを使用するWebアプリケーションの作成... 146 5.4.5.2 MyBatisを使用するSpring Frameworkのアプリケーションの作成...151 5.4.6 アプリケーションのビルド・デバッグ... 156 5.5 環境作成... 157 5.5.1 IJServerクラスタの作成... 157 5.5.2 JDBCドライバの環境設定... 157 5.5.3 データソースの登録... 157 5.6 運用・保守... 158 5.6.1 アプリケーションの配備... 158 5.6.2 起動・停止... 158 5.6.3 ログ...158 第6章 Struts 1.2... 160 6.1 Struts 1.2の概要... 160 6.2 Struts 1.2の機能... 160 6.2.1 Strutsカスタムタグライブラリ...160 6.2.2 ActionServlet... 161 6.2.3 Validator... 161 6.2.4 DataSource...161 6.2.5 国際化対応... 161 6.2.6 一貫したログの出力... 161 6.3 アプリケーションの開発... 161 6.3.1 Strutsアプリケーションに必要な資材の準備... 162 6.3.2 Modelの作成... 162 6.3.3 Viewの作成... 165 6.3.4 Controllerの動作を定義する設定ファイルの作成... 166 6.3.5 配備記述子(web.xml)の作成... 167 6.3.6 Webアプリケーションの作成... 168 6.4 環境作成... 169 6.4.1 IJServerクラスタの作成...169 6.4.2 クラスパスの設定... 169 6.5 運用・保守... 170 6.5.1 アプリケーションの配備... 170 6.5.2 起動・停止... 170 6.5.3 ログ...170 6.5.4 チューニング...171 第7章 Struts 1.3... 173 7.1 Struts 1.3の概要... 173 7.2 Struts 1.3の機能... 173 7.2.1 Strutsカスタムタグライブラリ...173 7.2.2 ActionServlet... 173 7.2.3 Validator... 174 7.2.4 国際化対応... 174 7.3 アプリケーションの開発... 174 7.3.1 Strutsアプリケーションに必要な資材の準備... 174 7.3.2 Modelの作成... 175 7.3.3 Viewの作成... 177 7.3.4 Controllerの動作を定義する設定ファイルの作成... 179 7.3.5 配備記述子(web.xml)の作成... 180 7.3.6 Webアプリケーションの作成... 181 7.4 環境作成... 181 7.4.1 IJServerクラスタの作成...181

(8)

7.5 運用・保守... 182

7.5.1 アプリケーションの配備... 182

7.5.2 起動・停止... 182

7.5.3 チューニング...183

第8章トラブルシューティング...184

8.1 TERASOLUNA Server Framework for Java (5.x)を使用している場合の異常...184

8.1.1 IJServerクラスタ起動時の異常... 184 8.2 Spring Framework 4.3を使用している場合の異常... 184 8.2.1 アプリケーション実行時の異常... 184 8.3 Spring Batch 3.0を使用している場合の異常...184 8.3.1 Batchアプリケーション実行時の異常...184 8.4 MyBatis 3.4を使用している場合の異常...185 8.4.1 アプリケーション実行時の異常... 185 8.5 Struts 1.2を使用している場合の異常... 185 8.5.1 IJServerクラスタ起動時の異常... 185 8.5.2 アプリケーション実行時の異常... 185 8.6 Struts 1.3を使用している場合の異常... 188 8.6.1 IJServer起動時の異常... 188 8.6.2 アプリケーション実行時の異常... 188 8.7 共通の異常...191 8.7.1 アプリケーション実行時の異常... 191 第9章バックアップ・リストアおよびクラスタ... 192 9.1 バックアップ・リストア資源の一覧... 192 9.2 バックアップの手順...192 9.2.1 アプリケーションサーバの停止... 192 9.2.2 アプリケーションサーバ環境資源のバックアップ... 192 9.2.3 アプリケーションサーバの起動... 193 9.3 リストアの手順... 193 9.3.1 アプリケーションサーバの停止... 193 9.3.2 アプリケーションサーバ環境資源のリストア...193 9.3.3 アプリケーションサーバの起動... 194 9.4 クラスタ構成... 194 付録A クラスパス設定サポート用Jarファイル... 195 付録B 謝辞、免責文、ライセンス文... 201 B.1 Apache Licenseのライセンス文...201

B.2 Eclipse Public Licenseのライセンス文... 206

B.3 GNU LESSER GENERAL PUBLIC LICENSEのライセンス文... 211

B.4 Javassistのライセンス文... 226

B.5 SLF4Jのライセンス文... 231

(9)

1

概要

1.1 Interstage Business Application Server

が提供するオープン

Java

レームワーク

Interstage Business Application Serverは、オープンソース・ソフトウェア(以下、OSSと略します)のJavaフレームワークであるSpring Framework、Spring Batch、MyBatis、TERASOLUNA、そしてStrutsに対してInterstage用にチューニングを行ったモジュールを提供します。 Interstage Java EE 7上で利用できる各フレームワークについて以下に説明します。

TERASOLUNA Server Framework for Java (5.x)

エンタープライズ用途を目的としたWebアプリケーション開発を容易にするフレームワークです。Spring Frameworkを核としたフレー ムワークであり、プロジェクト雛形に沿ってアプリケーションを開発します。

Spring Framework

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

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

Spring Batch Spring Batchは規模の大きいデータ処理や定期データ処理の自動化するためのBatchフレームワークです。

MyBatis JavaオブジェクトとRDBのデータ構造の違いを吸収してマッピング(O/Rマッピング)するという方法で、データアクセス層のアプリケー ションの開発を容易にするフレームワークです。

Struts Webアプリケーションに、Model、View、ControllerのMVC構造を適用して、Webアプリケーションの開発を容易にするフレームワー クです。 本マニュアルは、OSS版の各ソフトウェアと本製品で提供するモジュールとの差異、および各ソフトウェアをInterstage Java EE 7上で利用する 方法を主に説明しています。本マニュアルはOSSコミュニティが公開しているオリジナルのマニュアルと併せてお読みください。

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

マニュアルDVD内にも格納されています。 TERASOLUNAのマニュアルについては、下記のサイトを参照してください。 ( http://terasolunaorg.github.io/guideline/ )

1.2

動作環境

1.2.1

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

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

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

項番 機能名 製品名 バージョン・レベル 1 オープンJavaフレームワークを利用し たアプリケーションの開発

Interstage Studio Standard-J Edition 12.1.0

■データベース関連

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

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

1.2.2

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

(10)

■Java実行環境

項番 機能名 製品名 バージョン・レベル 1 オープンJavaフレームワークを利用し たアプリケーション 本製品が提供するアプリケーションサーバのJava EE 7のIJServerクラスタ

注意

Interstage Java EE 7上でオープンJavaフレームワークを使用する際に、製品に同梱されていないライブラリを利用する場合、以下の条件の

下に利用してください。

製品に同梱されていないライブラリがオープンJavaフレームワークと組み合わせて動作することは保証できません。

製品に同梱されていないライブラリで問題が発生した場合は、OSSコミュニティより提供される情報および修正版を利用者が入手し てください。

また、製品に同梱しているOSSのライブラリは、TERASOLUNA、Spring Framework、Spring Batch、MyBatis、またはStrutsの一部として 利用することを想定しています。本製品で提供するクラスパス設定サポート用jarファイルを介してのみ利用してください。

■データベース関連

Interstage Java EE 7上でオープンJavaフレームワークを利用する場合、データベースとの接続にはアプリケーションサーバのJDBCリソー

スを利用します。オープンJavaフレームワークで利用できるデータベースは以下の2種類です。

Oracle Database

Symfoware Server (Postgres)

上記のデータベースに接続するためのJDBCリソースの設定方法については、“Interstage Application Server Java EE 7 設計・構築・運用 ガイド”を確認してください。

1.2.3

資源要件

IPC資源

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

メモリ容量

オープンJavaフレームワークを利用する場合に必要なメモリ容量の目安を以下に示します。アプリケーションの構成や内容により実際の値は 大きく変動しますので、実運用にあたっては必ずテスト環境で測定を行ってください。

1.1 Java VM 1

プロセスあたりに必要なメモリ容量

項番 フレームワーク メモリ容量(VSZ)

1 TERASOLUNA Server Framework for Java (5.x) 2.0 Gbyte

2 Spring Framework 4.3 2.0 Gbyte

3 Spring Batch 3.0 2.0 Gbyte

4 MyBatis 3.4 2.0 Gbyte

5 Struts 1.2 2.0 Gbyte

(11)

1.3

運用モデル

1.3.1

基本的な構成

オープンJavaフレームワークを使用する場合の基本的な構成について説明します。 基本的な構成は、以下の6パターンがあります。 項番 パターン 説明 選択のポイント 1 TERASOLUNAと MyBatisを使用する構 成

TERASOLUNA Server Framework for Java (5.x)を使用する場合で、デー タベースアクセス層にMyBatisを使用 した構成です。 拡張性・保守性を考慮したアプリケーション構造を新規 に作成する場合、かつデータベースアクセスでSQLに よる細かな制御が必要な場合に選択します。 TERASOLUNAが提供するWebアプリケーションのた めの部品を利用できます。 2 TERASOLUNAとJPA を使用する構成

TERASOLUNA Server Framework for Java (5.x)を使用する場合で、デー タベースアクセス層にJPAを使用した 構成です。 拡張性・保守性を考慮したアプリケーション構造を新規 に作成する場合、かつデータベースアクセスでJPAに よる標準的なコーディングをしたい場合に選択します。 TERASOLUNAが提供するWebアプリケーションのた めの部品を利用できます。 3 Spring Frameworkだけ を使用する構成 プレゼンテーション層にSpring-MVC 機能を使用して、ビジネスロジック層で はSpring FrameworkのDI機能や AOP機能、データベースアクセス層で はSpring FrameworkのJPA連携や JDBC連携を利用する構成です。 TERASOLUNAの構造に縛られずSpring Framework を利用したい場合で、既存のデータベースアクセス処 理がある場合やデータベースのテーブル構造が比較 的単純な場合に選択します。 4 Spring Batchを使用する 構成 Spring BatchのBatchJobでBatchアプ リケーションを実行する場合の構成で す。 ジョブスケジューラからBatchアプリケーションを実行さ せる場合に選択します。 5 Spring Frameworkと Spring Batchを使用する 構成 Spring BatchのJobをWebアプリケー ションから実行する場合の構成です。

Java EE 7上で動作するSpring FrameworkのWebアプ

リケーションからSpring BatchのJobを実行させる場合に 選択します。 6 MyBatisだけを使用する 構成 MyBatisのO/Rマッピング機能だけを 使用する構成です。 プレゼンテーション層にSpring Frameworkを使用せず にユーザー独自で作成した場合や、EJBのSession BeanからMyBatisのO/Rマッピング機能を使用する場 合などに選択します。 7 Spring Frameworkと MyBatisを使用する構 成 プレゼンテーション層にSpring-MVC 機能を使用して、ビジネスロジック層で Spring FrameworkのDI機能やAOP 機能を利用する場合で、データベース アクセス層でMyBatisのO/Rマッピング 機能を使用する構成です。 TERASOLUNAの構造に縛られずSpring Framework を利用したい場合で、データベースアクセスでSQLに よる細かな制御が必要な場合に選択します。 8 Strutsだけを使用する構 成 Strutsを使用したWebアプリケーション の構成です。 既存Strutsアプリケーションからの移行の場合に選択し ます。

Struts 1.2を利用する場合、Interstage Business Application Serverにおける機能拡張である一貫したロ

グ(注)を使用できます。

)

一貫したログ機能でInterstage Java EE7上ではログの出力先を高信頼性ログにすることはできません。一貫したログ機能については “Interstage Business Application Server オープンJavaフレームワーク ユーザーズガイド”を参照してください。

Spring FrameworkとMyBatisを連携させる方法については、“5.4.5.2 MyBatisを使用するSpring Frameworkのアプリケーションの作成”を 参照してください。

(12)

2

TERASOLUNA Server Framework for Java (5.x)

本章では、TERASOLUNA Server Framework for Java (5.x)の概要と、TERASOLUNA Server Framework for Java (5.x)をInterstage

Business Application Serverで使用する際の設定方法および考慮すべき点について説明します。

TERASOLUNA Server Framework for Java (5.x)の一般的な使用方法はGitHubで公開されている開発ガイドラインを参照してください。

2.1 TERASOLUNA Server Framework for Java (5.x)

の概要

「TERASOLUNA Server Framework for Java (5.x)」は、Spring FrameworkなどのOSSを組み合わせ、高い信頼性が求められるエンター プライズ開発向けにチューニングされたWebアプリケーションフレームワークです。TERASOLUNAの開発ガイドラインに沿い、 「TERASOLUNA Server Framework for Java (5.x)」を利用したアプリケーションを開発することで、高い信頼性が求められるエンタープ ライズ向けWebアプリケーションを容易に開発できます。

2.1.1

主な構成要素

TERASOLUNA Server Framework for Java (5.x)は、Spring Frameworkを中心としたOSSの組み合わせです。以下に構成概要図を示し

ます。WebフロントはSpring MVCを利用し、データベースアクセスにはMyBatis3またはSpring Data JPAを利用します。

2.1 TERASOLUNA Server Framework for Java (5.x)

の構成概要図

2.1.2 Interstage Business Application Server

における提供ライブラリ

Interstage Business Application Serverでは、TERASOLUNA Server Framework for Java (5.x)として以下のライブラリを提供します。

項番 ファイル名 1 terasoluna-gfw-common-5.3.FUJITSU.jar 2 terasoluna-gfw-validator-5.3.FUJITSU.jar 3 terasoluna-gfw-codepoints-5.3.FUJITSU.jar 4 terasoluna-gfw-codepoints-jisx0201-5.3.FUJITSU.jar 5 terasoluna-gfw-codepoints-jisx0208-5.3.FUJITSU.jar 6 terasoluna-gfw-codepoints-jisx0208kanji-5.3.FUJITSU.jar 7 terasoluna-gfw-string-5.3.FUJITSU.jar 8 terasoluna-gfw-jodatime-5.3.FUJITSU.jar 9 terasoluna-gfw-security-web-5.3.FUJITSU.jar 10 terasoluna-gfw-web-5.3.FUJITSU.jar 11 terasoluna-gfw-web-jsp-5.3.FUJITSU.jar 12 mybatis-3.4.FUJITSU.jar

(13)

項番 ファイル名 13 mybatis-spring-1.3.FUJITSU.jar 14 spring-aop-4.3.FUJITSU.jar 15 spring-aspects-4.3.FUJITSU.jar 16 spring-beans-4.3.FUJITSU.jar 17 spring-context-4.3.FUJITSU.jar 18 spring-context-support-4.3.FUJITSU.jar 19 spring-core-4.3.FUJITSU.jar 20 spring-expression-4.3.FUJITSU.jar 21 spring-jdbc-4.3.FUJITSU.jar 22 spring-jms-4.3.FUJITSU.jar 23 spring-messaging-4.3.FUJITSU.jar 24 spring-orm-4.3.FUJITSU.jar 25 spring-tx-4.3.FUJITSU.jar 26 spring-web-4.3.FUJITSU.jar 27 spring-webmvc-4.3.FUJITSU.jar

また、TERASOLUNA Server Framework for Java (5.x)が利用するライブラリとして以下のライブラリを提供します。これらのライブラリは

TERASOLUNA Server Framework for Java (5.x)の一部として利用することを想定しています。TERASOLUNA Server Framework for Java (5.x)の一部としてのみ利用してください。

下記に示したライブラリ以外のライブラリとTERASOLUNA Server Framework for Java (5.x)を連携させて利用することも可能ですが、そ れらのライブラリで問題が発生した場合は、OSSコミュニティより提供される情報および修正版を利用者が入手してください。 項番 ファイル名 1 antlr-2.7.7.jar 2 aopalliance-1.0.jar 3 aspectjrt-1.8.13.jar 4 aspectjweaver-1.8.13.jar 5 classmate-1.3.4.jar 6 commons-beanutils-1.9.3.jar 7 commons-collections-3.2.2.jar 8 commons-digester-2.1.jar 9 commons-io-2.5.jar 10 commons-lang3-3.5.jar 11 dom4j-1.6.1.jar 12 dozer-5.5.1.jar 13 dozer-spring-5.5.1.jar 14 guava-20.0.jar 15 hibernate-commons-annotations-5.0.1.Final.jar 16 hibernate-core-5.0.12.Final.jar 17 hibernate-entitymanager-5.0.12.Final.jar 18 hibernate-validator-5.3.6.Final.jar

(14)

項番 ファイル名 19 jackson-annotations-2.8.11.jar 20 jackson-core-2.8.11.jar 21 jackson-databind-2.8.11.1.jar 22 jackson-datatype-joda-2.8.11.jar 23 jackson-datatype-jsr310-2.8.11.jar 24 jandex-2.0.0.Final.jar 25 javassist-3.21.0-GA.jar 26 jboss-logging-3.3.2.Final.jar 27 jcl-over-slf4j-1.7.25.jar 28 joda-time-2.9.9.jar 29 joda-time-jsptags-1.1.1.jar 30 log4jdbc-remix-0.2.7.jar 31 logback-classic-1.1.11.jar 32 logback-core-1.1.11.jar 33 slf4j-api-1.7.25.jar 34 spring-data-commons-1.13.11.RELEASE.jar 35 spring-data-jpa-1.11.11.RELEASE.jar 36 spring-security-acl-4.1.5.RELEASE.jar 37 spring-security-config-4.1.5.RELEASE.jar 38 spring-security-core-4.1.5.RELEASE.jar 39 spring-security-oauth2-2.0.14.RELEASE.jar 40 spring-security-taglibs-4.1.5.RELEASE.jar 41 spring-security-web-4.1.5.RELEASE.jar 42 tiles-api-3.0.8.jar 43 tiles-autotag-core-runtime-1.2.jar 44 tiles-core-3.0.8.jar 45 tiles-jsp-3.0.8.jar 46 tiles-request-api-1.0.7.jar 47 tiles-request-jsp-1.0.7.jar 48 tiles-request-servlet-1.0.7.jar 49 tiles-servlet-3.0.8.jar 50 tiles-template-3.0.8.jar 51 usertype.core-5.0.0.GA.jar 52 usertype.spi-5.0.0.GA.jar

2.2 OSS

TERASOLUNA Server Framework for Java (5.x)

との差異

Interstage Business Application Serverで提供するTERASOLUNA Server Framework for Java (5.x)で利用できる機能は、OSSとして公開

されているTERASOLUNA Server Framework for Java (5.x) で利用できる機能と基本的に変わりません。

TERASOLUNA Server Framework for Java (5.x)には以下の機能があります。機能詳細はGitHubで公開されている開発ガイドラインを参照 してください。

(15)

Webアプリ開発機能

Web Service

データアクセス

アプリケーション形態に依存しない汎用機能

メッセージ連携

セキュリティ対策

ただし、Interstage Business Application Serverで利用する場合、以下の点で考慮が必要です。以下の点については本マニュアルの手順を 参照してください。

項番 考慮点 OSS版開発ガイドラインにおける利用法 Interstage Business Application Serverにおける利用 法

1 実行環境の作成 特に言及していません。 Interstage Java EE 7上にIJServerクラスタを作成します。 TERASOLUNA Server Framework for Java (5.x)のアプ

リケーションはIJServerクラスタ上で実行します。 詳細は“2.5.1 IJServerクラスタの作成”を参照してくださ い。 2 クラスパスの設定 方法 必要なライブラリはmavenによりアプリケー ションのwarファイル内に取り込まれます。 ライブラリはアプリケーションのwarファイル内に取り込み ません。 クラスパス設定サポート用のjarファイルを用意してありま す。これを利用することで、将来的にライブラリの変更が あってもアプリケーションのリビルドは必要ありません。 詳細は“2.4.5 アプリケーションのクラスパスの設定”を参 照してください。 3 “データアクセス” で利用するデータ ソースの登録方法 Commons DBCPを利用する方法、および Tomcatにおける設定方法が説明されていま す。 Tomcat以外のアプリケーションサーバにお ける設定方法は各アプリケーションサーバ のマニュアルを参照。

Interstage Java EE 7のasadminコマンドで登録します。ア

プリケーションからは<jee:jndi-lookup/>タグによりアプリ ケーションサーバから取得します。 詳細は“2.5.3 データソースの登録”を参照してください。 4 “データアクセス” の“データベース アクセス(JPA編)” におけるJPAの設 定方法 hibernateのEntityManagerを利用するため の設定方法、およびWebLogicのトランザク ションマネージャを利用するための設定が 説明されています。 WebLogic以外のアプリケーションサーバに おける設定方法はhibernateのマニュアルを 参照。

Interstage Business Application Serverで用意している

プロジェクト雛形で、必要な設定がされています。 アプリケーション開発者が追加すべき設定やファイルは ありません。 5 アプリケーション開 発プロジェクトの作 成方法 mavenのarchetype:generateサブコマンドに よりアプリケーション開発プロジェクトを作成 します。 Interstage Studio用のプロジェクト雛形を用意してありま す。プロジェクト雛形をInterstage Studioにインポートして アプリケーション開発プロジェクトを作成します。 詳細は“2.4.3 アプリケーション開発プロジェクトの作成”を 参照してください。 6 アプリケーションの ビルド方法

mavenによりビルドします。 Interstage Studioによりビルドします。

詳細は“2.4.7 アプリケーションのビルド・デバッグ”を参照 してください。

7 アプリケーションの

配備

Tomcatへの配備方法が例示されています。 Interstage Java EE 7のasadminコマンドでIJServerクラス

(16)

項番 考慮点 OSS版開発ガイドラインにおける利用法 Interstage Business Application Serverにおける利用 法 Tomcat以外のアプリケーションサーバへの 配備方法については各アプリケーション サーバのマニュアルを参照。 詳細は“2.6.1 アプリケーションの配備”を参照してくださ い。 8 “メッセージ連携” でJavaMailおよび JMSを利用するた めのアプリケーショ ンサーバへの設定 方法 JavaMailおよびJMSをアプリケーションサー バで利用する際の設定方法について、各ア プリケーションサーバのマニュアルを参照。

“Interstage Application Server Java EE 7設計・構築・運 用ガイド”の以下の章を参照してください。 “JavaMailを利用する場合の手順” “JMSを利用する場合の手順” 9 “メッセージ連携” でJMSのコネクショ ンファクトリを設定 する方法 JNDI名でルックアップした ConnectionFactoryを CachingConnectionFactoryにラップして使 用します。 ・OSS版開発ガイドラインと同様に、JNDI名でルックアッ プしたConnectionFactoryをCachingConnectionFactory にラップして使用します。ただし追加定義が必要です。 詳細は“2.3.5 メッセージ連携”を参照してください。 ・JMS接続ファクトリがサポートするトランザクションのレベ ルをNoTransactionにする必要があります。

詳細は、“Interstage Application Server Java EE 7 設計・ 構築・運用ガイド”を参照してください。 10 “Web Service”の “SOAP Web Service”でWeb サービスURLを変 更する方法 Tomcatにおける設定方法が説明されていま す。 WebサービスのURLを変更する方法は各ア プリケーションサーバのマニュアルを参照。 web.xmlの<servlet-mapping>タグにより設定します。

詳細は“Interstage Application Server Java EE 7設計・構 築・運用ガイド”の以下の章を参照してください。 “Webサービスアプリケーションの開発” 11 “Web Service”の “SOAP Web Service”で使用で きるSOAPのバー ジョン SOAP1.1またはSOAP1.2を使用します。 WebサービスのサーバとクライアントともにInterstage Business Application Serverの場合、SOAP1.1または SOAP1.2を使用してください。

Webサービスのサーバまたはクライアントのいずれかが

他社製品の場合、SOAP1.1を使用してください。 使用するSOAPのバージョンの指定方法はOSS版開発 ガイドラインの以下の章を参照してください。

“Web Service”の“SOAP Web Service”

12 “Web Service”の “SOAP Web Service”でWeb サービスのクライア ントのタイムアウト を設定する方法 Webサービスのクライアントのタイムアウトに 使用するプロパティについて、 “JAX_WS-1166 Standardize timeout settings”を参照。 Webサービスのクライアントのタイムアウトには以下のプ ロパティを使用してください。またプロパティを設定する タグの属性に“value-type="java.lang.Integer"”を設定し てください。 ・Webサービスのサーバとのコネクションタイムアウト: com.sun.xml.ws.connect.timeout ・Webサービスのサーバとのリクエストタイムアウト: com.sun.xml.ws.request.timeout

プロパティの詳細は“Interstage Application Server Java

EE 7設計・構築・運用ガイド”の以下の章を参照してくだ

さい。

“Webサービスクライアントアプリケーションの開発” タグへの設定方法はOSS版開発ガイドラインの以下の章 を参照してください。

(17)

2.3 TERASOLUNA Server Framework for Java (5.x)

の機能

2.3.1 Web

アプリ開発機能

二重送信防止のためのトランザクショントークンや国際化対応のためのリソースファイル切り替えのしくみなど、Webアプリケーションを作成 する際に有用な各種機能を提供しています。アプリケーションの要件により利用してください。

2.3.2 Web Service

RESTやSOAPのWebサービスとなるアプリケーションを作成できます。Webサービスとしてアプリケーションを作成することで他システムとの 相互接続性を高めることができます。

2.3.3

データアクセス

データベースへのアクセスおよびトランザクションの制御をシンプルなコーディングで実現できます。データアクセスにおける詳細ログを取得 することで開発時のトラブル調査や運用時の監査が可能です。例外を事象毎のカテゴリに分けるためのクラスも提供しています。

2.3.4

アプリケーション形態に依存しない汎用機能

ロギングや日付操作など、アプリケーション形態に依らず利用できる汎用機能を提供しています。本機能の利用により頻繁に必要となる機能 の開発を削減できます。

2.3.5

メッセージ連携

EmailおよびJMS(Java Message Service)により、他システムとメッセージをやり取りできます。

本製品でJMSを利用したメッセージ連携をする場合、開発ガイドラインに記載されているCachingConnectionFactoryの設定に定義を追加 する必要があります。変更箇所を以下に示します。

開発ガイドラインに記載の設定

<bean id="cachingConnectionFactory"

class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref="connectionFactory" /> <property name="sessionCacheSize" value="1" />

</bean>

本製品で必要な設定

<bean id="cachingConnectionFactory"

class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref="connectionFactory" /> <property name="sessionCacheSize" value="1" />

<property name="reconnectOnException" value="false" /> <!-- 追加 --> </bean>

(18)

2.3.6

セキュリティ対策

認証・認可の機能やクロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ(CSRF)への対策機能を提供しています。本機能 によりWebアプリケーションのセキュリティレベルを高めることができます。

2.4

アプリケーションの開発

2.4.1

開発環境の作成

開発環境とするPCに、Interstage StudioおよびInterstage Business Application Server開発環境パッケージをインストールしてください。

ポイント

開発ガイドラインで紹介されているLombokをInterstage Studioで利用する場合、Interstage Studioがインストールされているフォルダ内の

eclipse.iniおよびisstudio.iniにLombokの設定を追記する必要があります。

2.4.2

雛形とするアプリケーション開発プロジェクトの選択

TERASOLUNA Server Framework for Java (5.x)では、データベースへのアクセス方法により2種類のプロジェクトを用意しています。以下

にその2種類のプロジェクトを示します。

Interstage Business Application Serverで用意してい るプロジェクト雛形 説明 terasoluna-gfw-multi-web-blank-mybatis3 データベースへのアクセスにMyBatis3を利用するアプリケーションを作成す るプロジェクトです。 利用するデータベースにあわせたSQL文を定義ファイルに直接記述したい 場合はこちらの雛形を使用してください。 terasoluna-gfw-multi-web-blank-jpa データベースへのアクセスにJPAを利用するアプリケーションを作成するプ ロジェクトです。 利用するデータベースに依らない汎用的なコーディングによりデータベー スアクセスを実装したい場合はこちらの雛形を使用してください。

2.4.3

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

前項で決定したプロジェクト雛形を指定してプロジェクトを生成します。

Interstage Business Application Serverで用意されているプロジェクト雛形を利用して、アプリケーションの開発プロジェクトを作成します。

プロジェクト雛形は、開発環境の以下の場所に格納されています。 [Interstageのインストールディレクトリ]\BAS\sample\openjava\terasoluna5\terasoluna-gfw-multi-web-blank-jpa.zip [Interstageのインストールディレクトリ]\BAS\sample\openjava\terasoluna5\terasoluna-gfw-multi-web-blank-mybatis3.zip 前項で決定したプロジェクト雛形をInterstage Studioへインポートしてから、以下の処置を行ってください。

1.

アプリケーションをビルドするためのクラスパスの変更

2.

プロジェクト名の変更

3.

bean定義ファイル名の変更

4.

JSPファイル内に記述されているアプリケーション名の変更

5.

javaパッケージ名の変更

(19)

ポイント

Interstage Business Application Server開発環境パッケージをC:\Interstage以外にインストールした場合は“2.4.3.1 アプリケーションをビ

ルドするためのクラスパスの変更”から行ってください。

Interstage Business Application Server開発環境パッケージをC:\Interstageにインストールした場合は“2.4.3.2 プロジェクト名の変更”から 行ってください。

2.4.3.1

アプリケーションをビルドするためのクラスパスの変更

プロジェクト雛形をInterstage Studioへインポートして作成される3つのブランクプロジェクトにはアプリケーションをビルドするために必要な クラスパスに以下のクラスパス設定サポート用jarファイルが設定されます。 使用したプロジェクト雛形 設定されるクラスパス設定サポート用jarファイル terasoluna-gfw-multi-web-blank-mybatis3 C:\Interstage\BAS\lib\classpathhelper\terasoluna53-mybatis-cph.FUJITSU.jar terasoluna-gfw-multi-web-blank-jpa C:\Interstage\BAS\lib\classpathhelper\terasoluna53-jpa-cph.FUJITSU.jar

Interstage Business Application Server開発環境パッケージをC:\Interstage以外にインストールした場合、Interstage Studioで各プロジェ

クトに対して以下の操作を行い、アプリケーションをビルドするために必要なクラスパスを変更してください。

1.

プロジェクト・エクスプローラー上でプロジェクトを選択状態にします。

2.

右クリックメニューから[ビルド・パス]>[ビルド・パスの構成]を選択します。

3.

[ライブラリー]を選択します。

4.

(欠落)となっているクラスパス設定サポート用jarファイル名を選択し、[編集]を選択します。

5.

開発環境の以下に存在するクラスパス設定サポート用jarファイルを選択します。 使用したプロジェクト雛形がterasoluna-gfw-multi-web-blank-mybatis3の場合: [Interstageのインストールディレクトリ]\BAS\lib\classpathhelper\terasoluna53-mybatis-cph.FUJITSU.jar 使用したプロジェクト雛形がterasoluna-gfw-multi-web-blank-jpaの場合: [Interstageのインストールディレクトリ]\BAS\lib\classpathhelper\terasoluna53-jap-cph.FUJITSU.jar

2.4.3.2

プロジェクト名の変更

プロジェクト雛形をInterstage Studioへインポートすると、以下の3つのブランクプロジェクトがStudioのワークスペースへコピーされます。 項番 ブランクプロジェクト名 説明 1 blank-domain ビジネスロジックを実装するためのプロジェクトです。 2 blank-env 環境依存の設定ファイルを格納するためのプロジェクトです。 3 blank-web Webページの出力や、入力データのチェックなど、クライアントとの入出力を制御する部分の 処理を実装するためのプロジェクトです。 Interstage Studioで各プロジェクトに対して以下の操作を行い、プロジェクト名を変更してください。

1.

プロジェクト・エクスプローラー上でプロジェクトを選択状態にします。

2.

右クリックメニューから[リファクタリング] > [名前変更]を選択します。

3.

プロジェクト名の"blank"の部分を変更します。"blank"以外の部分の文字列は変更しないでください。文字種は半角英数字を使用 してください。

(20)

変更前 blank-domain 変更後 app01-domain 今後、本書の説明でプロジェクト名を"(アプリケーション名)-domainプロジェクト"、"(アプリケーション名)-envプロジェクト"、"(アプリケーション 名)-webプロジェクト"と表記します。

2.4.3.3 bean

定義ファイル名の変更

前項で変名したプロジェクトには、ファイル名の先頭に"blank-"という名前が付加されているファイルがあります。 項番 プロジェクト名 ファイル名の先頭に"blank-"という名前が付加されているファイル 1 (アプリケーション名)-domain resources\META-INF\spring\blank-codelist.xml 2 resources\META-INF\spring\blank-domain.xml 3 resources\META-INF\spring\blank-infra.xml 4 (アプリケーション名)-env resources\META-INF\spring\blank-env.xml 5 resources\META-INF\spring\blank-infra.properties Interstage Studioで各ファイルに対して以下の操作を行い、リソース名を変更してください。

1.

プロジェクトエクスプローラー上でファイルを選択状態にします。

2.

[ファイル] > [名前変更]を選択します。

3.

ファイル名の"blank"の部分をプロジェクト名に合わせて変更します。"blank"以外の部分の文字列は変更しないでください。 以降、本書の説明で上記ファイルを"(プロジェクト名)-codelist.xml"等、"blank-"の代わりに"(アプリケーション名)-"をつけたファイル名で 説明します。 上記操作後に、さらに各プロジェクトに対して以下の操作を行い、ファイル間の整合性を取ります。

1.

プロジェクト・エクスプローラー上でプロジェクトを選択状態にします。

2.

[検索] > [ファイル]を選択します。

3.

[スコープ]で[エンクロージング・プロジェクト]を選択し、[ファイル名のパターン]に"*.xml"、[含まれるテキスト]に"blank"を入力して [置換]ボタンを押下します。

4.

[テキスト一致の置換]ダイアログが表れます。プロジェクト名に合わせて変更します。

2.4.3.4 JSPファイル内に記述されているアプリケーション名の変更

ブランクプロジェクトが提供するJSPファイルにはアプリケーション名を"blank"として記述している箇所があります。 項番 プロジェクト名 アプリケーション名を"blank"として記述しているJSPファイル 1 (アプリケーション名)-web WebContent\WEB-INF\views\layout\header.jsp 2 WebContent\WEB-INF\views\layout\template.jsp Interstage Studioで(アプリケーション名)-webプロジェクトに対して以下の操作を行い、JSPファイル内の"blank"の記述を変更してください。

1.

プロジェクト・エクスプローラー上でプロジェクトを選択状態にします。

2.

[検索] > [ファイル]を選択します。

3.

[スコープ]で[エンクロージング・プロジェクト]を選択し、[ファイル名のパターン]に"*.jsp"、[含まれるテキスト]に"blank"を入力して[置 換]ボタンを押下します。

4.

[テキスト一致の置換]ダイアログが表れます。アプリケーション名に合わせて変更します。

(21)

2.4.3.5 Java

パッケージ名の変更

ブランクプロジェクトでは、"xxxxxx.yyyyyy.zzzzzz"という名前のパッケージ内にアプリケーションが作成される形になっています。 Interstage Studioで各プロジェクトのJavaパッケージに対して以下の操作を行い、Javaパッケージ名を変更してください。 1. プロジェクト・エクスプローラー上でxxxxxx.yyyyyy.zzzzzzで始まるパッケージを選択状態にします。 2. 右クリックメニューから[リファクタリング] > [名前変更]を選択し、パッケージ名を変更します。 上記操作後に、さらに各プロジェクトに対して以下の操作を行い、ファイル間の整合性を取ります。

1.

プロジェクト・エクスプローラー上でプロジェクトを選択状態にします。

2.

[検索] > [ファイル]を選択します。

3.

[ ス コ ー プ ] で [ エ ン ク ロ ー ジ ン グ ・ プ ロ ジ ェ ク ト ] を 選 択 し 、 [ フ ァ イ ル 名 の パ タ ー ン ] に "*.xml" 、 [ 含 ま れ る テ キ ス ト ] に"xxxxxx.yyyyyy.zzzzzz"を入力して[置換]ボタンを押下します。

4.

[テキスト一致の置換]ダイアログが表れます。パッケージ名に合わせて変更します。

2.4.4

アプリケーションプロジェクト作成後の処置

2.4.4.1 DB

関連の設定箇所の修正

(アプリケーション名)-envプロジェクトで、データベース関連の設定を修正します。 (アプリケーション名)-envプロジェクトで以下の作業が必要です。

resources\META-INF\spring\(アプリケーション名)-infra.propertiesファイルで、利用するデータベース種別の設定

resources\META-INF\spring\(アプリケーション名)-infra.propertiesファイルで、JDBCリソース名の設定 (アプリケーション名)-infra.properties database=POSTGRESQL #database=ORACLE datasource.jndi.name=jdbc/SampleDataSource

database

Oracle databaseを使用する場合は、ORACLEにします。Symfoware Server (Postgres)を使用する場合はPOSTGRESQLにします。

datasource.jndi.name

“2.5.3 データソースの登録”で登録するJDBCリソース名を設定します。

2.4.5

アプリケーションのクラスパスの設定

Interstage Web application deployment descriptor(glassfish-web.xml)のclass-loader要素のextra-class-path属性にクラスパス設定サポート

用jarファイルを絶対パスで設定し、warファイルのWEB-INFディレクトリの下に配置してください。

warファイル内には、TERASOLUNA Server Framework for Java (5.x)のライブラリを直接格納しないでください。また、Interstage Web application deployment descriptor(glassfish-web.xml)のextra-class-path属性にはクラスパス設定サポート用jarファイル以外のファイルを

設定しないでください。

Interstage Business Application Serverでは、以下のクラスパス設定サポート用jarファイルを提供しています。

アプリケーションプロ ジェクトの種類 クラスパス設定サポート用jarファイル mybatisを使用する プロジェクト /opt/FJSVibs/lib/classpathhelper/terasoluna53-mybatis-cph.FUJITSU.jar

(22)

アプリケーションプロ ジェクトの種類 クラスパス設定サポート用jarファイル [Interstageのインストールディレクトリ]\BAS\lib\classpathhelper\terasoluna53-mybatis-cph.FUJITSU.jar JPAを使用するプロ ジェクト /opt/FJSVibs/lib/classpathhelper/terasoluna53-jpa-cph.FUJITSU.jar [Interstageのインストールディレクトリ]\BAS\lib\classpathhelper\terasoluna53-jpa-cph.FUJITSU.jar glassfish-web.xmlの設定例を以下に示します。複数個のライブラリを記述する場合はコロン(":")またはセミコロン(";")で区切ってください。

以下に示すWindowsの例はInterstageをC:\Interstageにインストールした場合の例です。 mybatisを使用する場合 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE glassfish-web-app PUBLIC

"-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">

<glassfish-web-app>

<class-loader delegate="false" extra-class-path="/opt/FJSVibs/lib/classpathhelper/terasoluna53-mybatis-cph.FUJITSU.jar" />

</glassfish-web-app>

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE glassfish-web-app PUBLIC

"-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">

<glassfish-web-app>

<class-loader delegate="false" extra-class-path="C\:\Interstage\BAS\lib\classpathhelper\terasoluna53-mybatis-cph.FUJITSU.jar" />

</glassfish-web-app>

JPAを使用する場合

(23)

<!DOCTYPE glassfish-web-app PUBLIC

"-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">

<glassfish-web-app>

<class-loader delegate="false" extra-class-path="/opt/FJSVibs/lib/classpathhelper/terasoluna53-jpa-cph.FUJITSU.jar" />

</glassfish-web-app>

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE glassfish-web-app PUBLIC

"-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">

<glassfish-web-app>

<class-loader delegate="false" extra-class-path="C\:\Interstage\BAS\lib\classpathhelper\terasoluna53-jpa-cph.FUJITSU.jar" /> </glassfish-web-app>

2.4.6

アプリケーションの実装

GitHubで公開されている開発ガイドラインを参照してください。

2.4.7

アプリケーションのビルド・デバッグ

アプリケーションはInterstage Studioにより自動的にビルドされます。

アプリケーションのデバッグは、Interstage Studioから(アプリケーション名)-webプロジェクトのデバッグ実行を選択します。Interstage Studio におけるデバッグ実行の方法は、“Interstage Studio ユーザーズガイド”の“アプリケーションの動作確認”を参照してください。

参考

開発ガイドラインで紹介されているLombokを利用する場合は、プロジェクトでAspectJ機能が有効になっているとLombokによる自動生成

メソッドがクラスファイルに反映されない場合があります。プロジェクト・エクスプローラーからプロジェクトを右クリックして、コンテキストメニュー に[AspectJ Tools]が存在している場合、[AspectJ Tools] > [AspectJ機能の除去]を実行してAspectJ機能を無効にしてください。

2.5

環境作成

本節ではInterstage Business Application Server上でTERASOLUNA Server Framework for Java (5.x)のアプリケーションを実行するた めに必要な環境の設定方法を説明します。

2.5.1 IJServer

クラスタの作成

Interstage Java EE 7のasadminコマンドでIJServerクラスタを作成してください。

asadminコマンドの詳細およびIJServerクラスタの作成方法の詳細は“Interstage Application Server Java EE 7設計・構築・運用ガイド”を参

(24)

下記にコマンド実行例を示します。太字部分はシステムにあわせて設定してください。

$ /opt/FJSVisje7/glassfish/bin/asadmin create-cluster IJServer001

$ /opt/FJSVisje7/glassfish/bin/asadmin create-local-instance --cluster IJServer001 instance001

2.5.2 JDBC

ドライバの環境設定

アプリケーションで利用するデータベースのJDBCドライバをInterstage Java EE 7のJava EE 7共通ディレクトリに設定する必要があります。 詳細は“Interstage Application Server Java EE 7設計・構築・運用ガイド”を参照してください。

2.5.3

データソースの登録

Interstage Java EE 7のasadminコマンドでJDBC接続プールおよびJDBCリソースを作成します。作成したJDBCリソースをデータソースとして

利用します。

asadminコマンドのcreate-jdbc-connection-poolサブコマンドおよびcreate-jdbc-resourceサブコマンドを使用して、アプリケーションで使用

するJNDI名のJDBCリソースを作成してください。

詳細は“Interstage Application Server Java EE 7設計・構築・運用ガイド”を参照してください。 下記にコマンド実行例を示します。太字部分はシステムにあわせて設定してください。

Symfoware Server (Postgres)を使用する場合

$ /opt/FJSVisje7/glassfish/bin/asadmin create-jdbc-connection-pool \ --datasourceclassname org.postgresql.ds.PGPoolingDataSource \ --restype javax.sql.DataSource \ --property user=user001:password=abcd1234:databaseName=DB001:serverName=server01:portNumber=26500 \ terasoluna_pool $ /opt/FJSVisje7/glassfish/bin/asadmin create-jdbc-resource \ --target IJServer001 \ --connectionpoolid terasoluna_pool \ jdbc/terasolunaAppDataSource Oracle Databaseを使用する場合 $ /opt/FJSVisje7/glassfish/bin/asadmin create-jdbc-connection-pool \ --datasourceclassname oracle.jdbc.pool.OracleConnectionPoolDataSource \ --restype javax.sql.ConnectionPoolDataSource \ --property user=user001:password=abcd1234:URL=jdbc\:oracle\:thin\:@//server01\:1521/orcl \ terasoluna_pool

(25)

$ /opt/FJSVisje7/glassfish/bin/asadmin create-jdbc-resource \ --target IJServer001 \ --connectionpoolid terasoluna_pool \ jdbc/terasolunaAppDataSource

2.6

運用・保守

2.6.1

アプリケーションの配備

実行環境となるサーバへアプリケーションを配備するためには、開発環境で以下の手順で配備ファイルを生成してください。

1.

(アプリケーション名)-webプロジェクトのコンテキストメニューから[エクスポート] > [warファイル]を選択して(アプリケーション名)-web.warファイルを作成してください。 (アプリケーション名)-web.warファイルを作成した後、実行環境となるサーバへSFTPなどで転送し、サーバ上でInterstage Java EE 7の asadminコマンドを使用して配備してください。

詳細は“Interstage Application Server Java EE 7設計・構築・運用ガイド”を参照してください。

asadmin deploy --target IJServer01 app01-web.war

2.6.2

起動・停止

アプリケーションを実行するためにIJServerクラスタを起動します。

Interstage Java EE 7のasadminコマンドでIJServerクラスタを起動・停止してください。

詳細は“Interstage Application Server Java EE 7設計・構築・運用ガイド”を参照してください。

2.6.3

ログ

TERASOLUNA Server Framework for Java (5.x)におけるログの種類およびログ出力内容の設計などについては、GitHubで公開され

ている開発ガイドラインのロギングの章を参照してください。

ここではInterstage Business Application Serverで提供するプロジェクト雛形における初期設定値を説明します。

TERASOLUNA Server Framework for Java (5.x)のログは、以下で設定します。 (アプリケーション名)-envプロジェクトのresources/logback.xml

<appender name="APPLICATION_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${app.log.dir:-log}/(アプリケーション名)-application.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${app.log.dir:-log}/(アプリケーション名)-application-%d{yyyyMMdd}.log</fileNamePattern> <maxHistory>7</maxHistory> </rollingPolicy> <encoder>

(26)

<charset>UTF-8</charset> <pattern><![CDATA[date:%d{yyyy-MM-dd HH:mm:ss}\tthread:%thread\tX-Track:%X{X-Track}\tlevel:%-5level\tlogger: %-48logger{48}\tmessage:%msg%n]]></pattern> </encoder> </appender> ・・・ <!-- Application Loggers --> <logger name="xxxxxx.yyyyyy.zzzzzz"> <level value="debug" /> </logger> <!-- TERASOLUNA --> <logger name="org.terasoluna.gfw"> <level value="info" /> </logger> ・・・ <!-- Spring Framework --> <logger name="org.springframework"> <level value="warn" /> </logger> APPLICATION_LOG_FILE アペンダで設定されるアプリケーションログファイルの出力先は以下になります。 /var/opt/FJSVisje7/nodes/localhost-domain1/<インスタンス名>/current/log/(アプリケーション名)-application.log C:\Interstage/F3FMisje7/var/nodes/localhost-domain1/<インスタンス名>/current/log/(アプリケーション名)-application.log

“<!-- Application Loggers -->”で指定しているアプリケーションのログ出力レベルはdebugに設定されています。本番環境用にビルドする際 には適切なレベルに変更してください。

“<!-- TERASOLUNA -->”で指定しているTERASOLUNA Server Framework for Java (5.x)のライブラリ内の処理状況のログはinfoレベ ルに設定されています。”<!-- Spring Framework -->”で指定しているSpring Frameworkライブラリ内の処理状況のログはwarnレベルに設定 されています。アプリケーションのデバッグ時などにこれらのライブラリ内の処理状況詳細を知りたい場合は、ログレベルを上げてください。

2.7

旧バージョン・レベルからの移行

ここでは、以前のバージョン・レベルから本バージョン・レベルへの移行について説明します。

TERASOLUNA Server Framework for Java (5.x)のベースとなるバージョンが変更されました。変更内容は開発ガイドラインの更新履歴を 参照してください。

(27)

フレームワーク名 V12.0.0 V12.1.0 TERASOLUNA Server Framework for Java (5.x) V5.3.0 V5.3.2

2.7.1 V12.0.0

からの移行

移行手順についてはGitHubで公開されている5.3.1から5.3.2への移行ガイドの“5.3.1から5.3.2への移行手順”の以下のステップを参照し てください。 ステップ 手順 ステップ2 全角半角変換ライブラリのバグ修正 ステップ3 mvc:annotation-driven要素から独自のmvc:path-matching定義を削除 ステップ8 パス変数を使用するアクセスポリシー定義の修正 ステップ9 Cache-Controlヘッダが正常に出力されないバグの暫定対処

ステップ10 SOAP Web ServiceのDI方法の変更

ステップ11 SOAPクライアントのタイムアウト設定の修正

ステップ12 Basic認証用リクエストヘッダの設定方法の修正

ステップ13 @Transactionalアノテーションのtimeout属性が有効になったことに伴う修正

ステップ14 OAuthのエラーハンドリング方法追加に伴う修正

(28)

3

Spring Framework 4.3

3.1 Spring Framework 4.3

の概要

Spring Frameworkはコンポーネントの再利用性を高める事を目的としたDIと呼ばれるデザインパターンに基づいたJavaアプリケーション

フレームワークです。

3.2 OSS

Spring Framework 4.3

との差異

本製品に含まれるSpring Framework 4.3が提供する機能について記載します。

機能分類 機能名 本製品で提供するSpring Framework 4.3

基本機能 DIコンテナ ○

バリデーション ×

型変換 ○

Spring Expression Language(SpEL) ○

Aspect Oriented Programming(AOP) ○

テスト支援機能 Unitテスト ×

TestContextフレームワーク ○

データアクセス トランザクション制御 ○

Data Access Object(DAO) ○

JDBCにおけるデータアクセス ○ O/Rマッピング連携(Hibernate) ○ O/Rマッピング連携(JDO) × O/Rマッピング連携(JPA) ○ O/Rマッピング連携(MyBatis) ○ Object/XMLマッピング連携 ○ Web機能 MVCフレームワーク ○

JavaScript Object Notation(JSON) ○

フレームワーク連携(JavaServer Faces) ×

フレームワーク連携(Struts) ×

フレームワーク連携(Tapestry) ×

ポートレット機能 ×

WebSocket連携 ○

Cross-Origin Resource Sharing(CORS) ×

インテグレーション REST ○

リモーティング ○

EJB連携 ○

Java Message Service(JMS) × Java Management Extensions(JMX) ×

Java EE Connector Architecture(JCA)/Common Client Interface(CCI)

×

(29)

機能分類 機能名 本製品で提供するSpring Framework 4.3 タスク実行・スケジューリング × 動的言語 × Cache機能 ○ ○:使用可能な機能です ×:未サポートの機能です

また、Interstage Business Application Serverで利用する場合、以下の点で考慮が必要です。

項番 考慮点 詳細内容 1 データベースとの接続 データベースとの接続はJNDIを使用してデータソースに接続してください。 詳細は“3.6.3 データソースの登録”を参照してください。 2 O/Rマッピング連携(Hibernate) 本製品ではHibernateライブラリを提供していないため、Hibernate を使用する場合 は、Hibernateライブラリを入手する必要があります。Spring Framework 4.3は以下 のHibernateに対応しています。

Hibernate-core: 4.0.0.Final ~ 5.0.11.Final

3 Object/XMLマッピング連携 Object/XMLマッピング連携は以下の機能との連携をサポートしています。

JAXB

4 JavaScript Object Notation(JSON) jacksonライブラリを使用する場合は、Webクラスローダへの委譲モデルを後に行う

ように変更してください。Webクラスローダの委譲モデルの変更については、

Interstage Web application deployment descriptor (glassfish-web.xml)でします。

詳細については、“Interstage Application Server Java EE 7設計・構築・運用ガイド” の“Webクラスローダの委譲モデルの変更”を参照してください。

5 WebSocket連携 本製品ではWebSocketに対応したWebサーバを提供していません。WebSocket連

携を利用するためには、IPCOMの負荷分散機能を使用してください。IPCOMの 負荷分散機能については、“Interstage Application Server 高信頼性システム運用 ガイド”の“IPCOMを利用した負荷分散”を参照してください。 6 リモーティング方式 以下に記載するリモーティング方式をサポートします。

HttpInvoker

JmsInvoker 7 クラスパスの設定方法 クラスパス設定サポート用のjarファイルを用意してあります。これを利用することで、 将来的にライブラリの変更があってもアプリケーションのリビルドは必要ありません。 詳細は“3.5.3 アプリケーションのクラスパスの設定”を参照してください。

3.3 Spring Framework 4.3

の機能

3.3.1

基本機能

基本機能について説明します。

3.3.1.1 DI

コンテナ

ポイント

Spring Frameworkは定義されたBeanをデフォルトでSingletonとして管理しています。変更したい場合にはSpring Frameworkが提供して

参照

関連したドキュメント

BRAdmin Professional 4 を Microsoft Azure に接続するには、Microsoft Azure のサブスクリプションと Microsoft Azure Storage アカウントが必要です。.. BRAdmin Professional

メイン プログラムウィンドウでの作業 [スタート] → [すべてのプログラム] → [Acronis] → [PrivacyExpert] → [Acronis Pricacy Expert

・Microsoft® SQL Server® 2019 Client Access License (10 User)ライセンス証書 オープン価格. オープン価格 Microsoft SQL

In this diagram, there are the following objects: myFrame of the Frame class, myVal of the Validator class, factory of the VerifierFactory class, out of the PrintStream class,

入札説明書等の電子的提供 国土交通省においては、CALS/EC の導入により、公共事業の効率的な執行を通じてコスト縮減、品

Read the Limitation of Warranty and Liability on the Section 3 Federal product label before buying or using THIS product. If terms are not acceptable, return the unopened package

話者の発表態度 がプレゼンテー ションの内容を 説得的にしてお り、聴衆の反応 を見ながら自信 をもって伝えて

活用することとともに,デメリットを克服することが不可欠となるが,メ