6 IBM WebSphere Application ServerでTopLinkを使用する方法
この章の内容は次のとおりです。
ユース・ケース
TopLinkは、WebSphere Application Serverを含む多くの一般的なJava EEアプリケーション・サーバーで使用できます。
解決方法
WebSphereを構成し、EclipseLinkランタイムを使用して、EclipseLink APIを使用して開発されたアプリケーションをデプロイします。
コンポーネント
-
TopLink 12c (12.1.2.0.0)以上。
注意:
TopLinkのコア機能は、オープン・ソースのEclipse Foundationの永続性フレームワークであるEclipseLinkによって提供されています。EclipseLinkでは、Java Persistence API (JPA)、Java Architecture for XML Binding (JAXB)、および標準に基づいたその他の永続性テクノロジと、それらの標準の拡張が実装されます。TopLinkには、EclipseLinkのすべてに加え、Oracleの追加機能が含まれています。
-
EclipseLink 2.4以降。
-
WebSphere Application Server 7以上。ここで説明する手順は、WebSphere 8.5のものです。
-
Oracle Database、Oracle Express、MySQL、WebSphere Application Serverに組み込まれているいるDerbyデータベースなどの対応するJava Database Connectivity (JDBC)データベース。
ソリューションの概要
WebSphere Application Serverでは、Java Platform, Enterprise Edition (Java EE)が実装されます。WebSphere V8.5はJava EE 6を完全にサポートし、プラグインを介してJava Platform, Standard Edition (Java SE) 7をサポートできます。
EclipseLinkをサポートするようにWebSphereを構成することにより、EclipseLinkが完全にサポートしているJava Persistence API (JPA)およびEclipseLinkの多くの拡張を利用するアプリケーションを作成およびデプロイできます。
ソリューションの実装
IBM WebSphereでEclipseLinkアプリケーションを開発、デプロイおよび実行するには、EclipseLinkを含む様々なモジュールをWebSphereに追加し、WebSphereの様々な局面を構成してEclipseLinkをサポートするようにする必要があります。
この項では、IBM WebSphere Version 7以上でEclipseLinkを使用するその他のタスクについて説明しています。
タスク1: 前提条件
次のコンポーネントがインストールされていることを確認します。
-
IBM WebSphere, Version 7以上。ここで説明する手順は、WebSphereバージョン8.5のものです。
http://www-01.ibm.com/software/webservers/appserv/was/
からIBM WebSphereを入手します。 -
TopLink 12c (12.1.2.0.0)以上。
http://www.oracle.com/technetwork/middleware/toplink/downloads/index.html
からTopLinkをダウンロードします。次のファイルを使用します。
-
TopLinkクイック・インストーラによって作成された
oracle_common\modules\oracle.toplink_
ver_no
ディレクトリにあるeclipselink.jar
-
TopLinkのクイック・インストーラによって作成された
oracle_common\modules
ディレクトリにあるjavax.persistence_
ver_no
.jar
EclipseLink 2.4以降。
http://www.eclipse.org/eclipselink/downloads/
からEclipseLinkをダウンロードします。次のファイルを使用します。
-
eclipselink.jar
-
javax.persistence_
ver_no
.jar
-
タスク2: 永続性ユニットの構成
EclipseLinkを永続性プロバイダとして、またWebSphereをターゲット・サーバーとして使用するには、永続性ユニットを構成します。
例6-1に、コンテナで管理される永続性ユニットの構成例を示します。
例6-1 コンテナで管理される永続性ユニットのpersistence.xmlの例
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0"> <persistence-unit name="default" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>jdbc/EclipseLinkDS</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="eclipselink.target-server" value="WebSphere_7"/> <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.oracle.Oracle11Platform"/> <property name="eclipselink.validate-existence" value="true"/> <property name="eclipselink.weaving" value="true"/> <property name="eclipselink.logging.level" value="FINEST"/> </properties> </persistence-unit> </persistence>
例6-2に、アプリケーションで管理される永続性ユニットの構成例を示します。
例6-2 アプリケーションで管理される永続性ユニットのサンプルのpersistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>jdbc/ELNonJTADS</non-jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.target-server" value="WebSphere_7"/>
<property name="eclipselink.target-database"
value="org.eclipse.persistence.platform.database.oracle.Oracle11Platform"/>
<property name="eclipselink.validate-existence" value="true"/>
<property name="eclipselink.weaving" value="true"/>
<property name="eclipselink.logging.level" value="FINEST"/>
</properties>
</persistence-unit>
</persistence>
前述の2例について、次を考慮してください。
-
eclipselink.target-server
値WebSphere_7
は、WebSphere Application Serverバージョン7以上用で使用されています。 -
永続性スキーマのバージョン
persistence_1_0.xsd" version="1.0"
はJPA 1とJPA 2の両方に指定して動作します。JPA 2.nのみのアプリケーションでは、バージョンをpersistence_2_0.xsd" version="2.
n"
に変更します(WebSphereでは、WebSphere Application Server 7.0.0.9以上でJPA 2をサポートするようになりました)。
タスク3: EclipseLinkを使用するためのサーバーおよびアプリケーションの構成
次は、アプリケーション・サーバーでEclipseLinkを使用する典型的なシナリオです。
EclipseLinkをグローバルで利用できるようにするためのサーバーの変更
コンテナおよびアプリケーションで管理される永続ユニットのいずれも、次のいずれかの方法でグローバルにEclipseLinkで使用できるようにできます。
オプション1: グローバルに共有するライブラリの作成(推奨)
-
次のファイルを含むグローバルに共有するライブラリを作成します。
-
eclipselink.jar
このファイルを、TopLinkクイック・インストーラによって作成された
TOPLINK_INSTALLATION
\oracle_common\modules\oracle.toplink_
ver_no
ディレクトリから探します。 -
xmlparserv2.jar
このファイルをクイック・インストーラで作成された
TOPLINK_INSTALLATION
\toplink\modules
ディレクトリから探します。 -
JPAで
NCHAR
、XMLTYPE
およびMDSYS.SDO_GEOMETRY
などのOracle Databaseの機能を使用する場合、共有ライブラリにxdb.jar
およびsdoapi.jar
も含める必要があります。これらのファイルはOracle Databaseの配布内にあります。
WebSphereを使用して共有ライブラリを簡単に作成する方法の詳細は、WebSphereのドキュメントを参照してください。
-
-
共有ライブラリをアプリケーションと関連付けます。
WebSphereを使用して共有ライブラリとアプリケーションを関連付ける方法については、WebSphereのドキュメントを参照してください。
オプション2: サーバー・ライブラリ拡張としてのEclipseLinkの追加
サーバー・ライブラリの拡張としてEclipseLinkを追加するには、前述のオプション1にあるeclipselink.jar
とその他のJARファイルをWAS_HOME
\lib\ext
ディレクトリにコピーします。
アプリケーションEARへのEclipseLinkのパッケージ
サーバー構成を変更せず、eclipselink.jar
をアプリケーションEARに追加して、コンテナで管理される永続性を実装できます。この場合、永続性ユニットはステートレス・セッションBeanへの@PersistenceContext
エンティティ・マネージャ・プロキシの挿入で管理されています。次に、このアプローチの例を示します。
その他の参考資料
この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。
-
http://www-01.ibm.com/software/webservers/appserv/was/
のWebSphere Application Server。