この章では、Oracle TopLinkをJBoss Application Server 7.1にデプロイされたアプリケーションの永続性プロバイダとして使用する方法を紹介して説明します。
この章には次の項が含まれます。
ユース・ケース
TopLinkは、JBoss Application Serverを含む多くの一般的なJava EEアプリケーション・サーバーで使用できます。
解決方法
EclipseLinkランタイムを使用するようJBossを構成して、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の追加機能が含まれています。 |
JBoss Application Server 7.x。
Oracle Database、Oracle Express、MySQL、JBoss Application Serverに組み込まれているHSQLデータベースなどの対応するJava Database Connectivity (JDBC)データベース。
JBoss Application Serverには、Java Platform, Enterprise Edition (Java EE)が実装されます。JBoss 7ではJava EE 6が完全にサポートされていますが、JBoss 6では公式にはJava EE 6 Webプロファイルのみがサポートされています。
JBossでEclipseLinkがサポートされるように構成すると、Java Persistence API (JPA)、Java Architecture for XML Binding (JAXB)およびそれらのテクノロジに対するEclipseLinkの拡張、またリレーショナル・データベースのアーティファクトにアクセスするWebサービスを介したEclipseLink Database Web Services (DBWS)を完全にサポートするEclipseLinkの利益を享受できます。
JBoss Application Server 7でEclipseLinkのアプリケーションを開発、デプロイおよび実行するには、EclipseLinkをJBossのモジュールとして作成する必要があります。また、アプリケーションを実行するために、JDBCドライバなどその他のモジュールも作成する必要があります。
この項では、JBoss 7.1でEclipseLinkを使用するための次のタスクについて説明します。
次のコンポーネントがインストールされていることを確認します。
JBossバージョン7以上。ここで説明する手順は、JBossリリース7.1.1のものです。
http://www.jboss.org/jbossas/downloads/
からJBossをダウンロードします。JBossのバージョンは、Certified Java EE6となっている必要があります。推奨は、Version 7.1.1以上です。
TopLink 12c (12.1.2.0.0)以上。
http://www.oracle.com/technetwork/middleware/toplink/downloads/index.html
からTopLinkをダウンロードします。
Oracle Database、Oracle Express、MySQL、JBoss Application Serverに組み込まれているいるHSQLデータベースを含む任意の対応するJava Database Connectivity (JDBC)データベース。
注意: Oracle XML DB (XDB)およびJBoss Application Serverは、いずれもデフォルトでポート |
Oracle Databaseについては、http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html
を参照してください。Oracle Database, Express Editionについては、http://www.oracle.com/technetwork/database/express-edition/overview/index.html
を参照してください。MySQLについては、http://www.oracle.com/us/products/mysql/index.html
を参照してください。組込みHSQLデータベースの詳細は、JBossのドキュメントを参照してください。
必須ではありませんが、Java開発環境(IDE)を開発に使用すると便利です。JDeveloper、Oracle Enterprise Pack for EclipseおよびNetBeansなどすべてに、TopLinkをサポートする高度なJava EE開発ツールが用意されています。
JDeveloperについては、http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
を参照してください。Oracle Enterprise Pack for Eclipseについては、http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
を参照してください。NetBeansについては、http://www.oracle.com/us/products/tools/050845.html
を参照してください。
JBossのモジュールとしてEclipseLinkを構成するには、次の手順を実行します。
次のようにディレクトリを作成します。
JBOSS_ HOME
\modules\org\eclipse\persistence\main
手順1で作成したディレクトリにeclipselink.jar
をコピーします。(eclipselink.jar
ファイルは、TopLinkのクイック・インストーラによって作成されたoracle_common\modules\oracle.toplink_
ver_no
ディレクトリにあります。)
手順1で作成したディレクトリに、次の内容でmodule.xml
ファイルを作成します。
<module xmlns="urn:jboss:module:1.1" name="org.eclipse.persistence"> <resources> <resource-root path="eclipselink.jar"/> <!-- Insert resources here --> </resources> <dependencies> <module name="javax.api"/> <module name="javax.persistence.api"/> <module name="javax.transaction.api"/> <module name="javax.validation.api"/> <module name="javax.xml.bind.api"/> <module name="org.antlr"/> <module name="org.apache.commons.collections"/> <module name="org.dom4j"/> <module name="org.javassist"/> <module name="org.jboss.logging"/> <module name="com.oracle.ojdbc6"/> </dependencies> </module>
Oracle Thinドライバojdbc6.jar
をJBossにモジュールとして追加するには、次の手順を実行します。
モジュール・ディレクトリを作成します。
JBOSS_ HOME
\modules\com\oracle\ojdbc6\main
手順1で作成したモジュール・ディレクトリにojdbc6.jar
をコピーします。
手順1で作成したモジュール・ディレクトリに、次の内容でmodule.xml
ファイルを作成します。
<module xmlns="urn:jboss:module:1.1" name="com.oracle.ojdbc6"> <resources> <resource-root path="ojdbc6.jar"/> <!-- Insert resources here --> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>
ドライバの定義およびデータ・ソースを作成します。
次の手順では、standalone.xml
構成ファイルを使用してスタンドアロン・モードでJBossを構成する手順を説明します。domain.xml
を使用して、ドメイン・モードで実行するようJBossを構成する方法の詳細は、JBossのドキュメントを参照してください。
スタンドアロンの構成ファイルJBOSS_ HOME
\standalone\configuration\standalone.xml
で次を探します。
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
このセクションでデータ・ソースを構成します。次に、Oracle JDBC Thinドライバを使用したOracle Databaseの構成を示します。その他のデータ・ソースの構成手順については、JBossのドキュメントを参照してください。
<subsystem xmlns="urn:jboss:domain:datasources:1.0"> <datasources> <datasource jndi-name="java:/EclipseLinkDS" pool-name="EclipseLinkDS" enabled="true" jta="true" use-java-context="true" use-ccm="true"> <connection-url>jdbc:oracle:thin:node_name.example.com:1521:TOPLINK</connection-url> <driver>oracle</driver> <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> <pool> <prefill>true</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <user-name>Smith</user-name> <password>password</password> </security> </datasource> <driver name="oracle" module="com.oracle.ojdbc6"> <xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class> </driver> </datasources> </subsystem>
JBoss Application Server 7.1以降、JNDIツリーへのリモート・アクセスがデフォルトでセキュリティ保護されており、ログイン資格証明を提供する必要があるため、アプリケーション・ユーザーを最初に作成する必要があります。したがって、サーバーにアプリケーションをデプロイするには、最低でもアプリケーション・ユーザーを作成する必要があります。JNDIツリーを参照するなどの管理タスクにJBoss管理コンソールを使用するためにも、管理者ユーザーを作成する必要があります。
ユーザーの資格証明を作成するには、JBOSS_HOME
\bin\
にある、JBossのadd-user.bat
ユーティリティを使用します。
JBoss Application Serverでのセキュリティの詳細は、JBossのドキュメントを参照してください。
次のようにJBossのプロパティを変更します。
## JBoss-7.x server.factory=org.jboss.naming.remote.client.InitialContextFactory java.naming.factory.url.pkgs=org.jboss.ejb.client.naming server.depend=jboss-client.jar jboss.server=${jboss.home}/standalone server.lib=${jboss.home}/bin/client server.url=remote://localhost:4447 server.user=usera server.pwd=passworda jboss.naming.client.ejb.context=true
\lib
ディレクトリの下にear
にjunit.jar
を追加します。
JBossのクラスロードの問題のために、persistence.xml
にエンティティ・クラスをすべて列挙する必要があります。<class>
要素またはグローバル<exclude-unlisted-classes>false</exclude-unlisted-classes>
要素を使用します。
jndi.properties
およびjboss-ejb-client.properties
の両方のプロパティをクライアントのクラスパスに追加します。
(サーバーが1つのみの構成の場合は)standalone.bat
または(クラスタ環境の場合は)domain.bat
ファイルをJBOSS_ HOME
\bin\
で実行し、JBossを起動します。
JBossを構成および起動する別の方法については、JBossのドキュメントを参照してください。
この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。
http://www.jboss.org
のJBossコミュニティ。