5 JBoss 7 Application ServerでTopLinkを使用する方法
この章には次の項が含まれます。
ユース・ケース
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の追加機能が含まれています。
-
EclipseLink 2.4以降。
-
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を使用するための次のタスクについて説明します。
タスク1: 前提条件
次のコンポーネントがインストールされていることを確認します。
-
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をダウンロードします。EclipseLink 2.4以降。
http://www.eclipse.org/eclipselink/downloads/
からEclipseLinkをダウンロードします。 -
Oracle Database、Oracle Express、MySQL、JBoss Application Serverに組み込まれているいるHSQLデータベースを含む任意の対応するJava Database Connectivity (JDBC)データベース。
注意:
Oracle XML DB (XDB)およびJBoss Application Serverは、いずれもデフォルトでポート
8080
を使用します。localhost
など同じURIで両方が使用されるようになっている場合、いずれか一方が8081
などの別のポートを使用するよう再構成する必要があります。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の詳細は、https://www.oracle.com/tools/technologies/netbeans-ide.html
を参照してください。
タスク4: ドライバ定義およびデータ・ソースの作成
ドライバの定義およびデータ・ソースを作成します。
次の手順では、standalone.xml
構成ファイルを使用してスタンドアロン・モードでJBossを構成する手順を説明します。domain.xml
を使用して、ドメイン・モードで実行するようJBossを構成する方法の詳細は、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>
タスク5: ユーザーの作成
JBoss Application Server 7.1以降、JNDIツリーへのリモート・アクセスがデフォルトでセキュリティ保護されており、ログイン資格証明を提供する必要があるため、アプリケーション・ユーザーを最初に作成する必要があります。したがって、サーバーにアプリケーションをデプロイするには、最低でもアプリケーション・ユーザーを作成する必要があります。JNDIツリーを参照するなどの管理タスクにJBoss管理コンソールを使用するためにも、管理者ユーザーを作成する必要があります。
ユーザーの資格証明を作成するには、JBOSS_HOME
\bin\
にある、JBossのadd-user.bat
ユーティリティを使用します。
JBoss Application Serverでのセキュリティの詳細は、JBossのドキュメントを参照してください。
タスク6: 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
タスク7: その他の要件
\lib
ディレクトリの下にear
にjunit.jar
を追加します。- JBossのクラスロードの問題のために、
persistence.xml
にエンティティ・クラスをすべて列挙する必要があります。<class>
要素またはグローバル<exclude-unlisted-classes>false</exclude-unlisted-classes>
要素を使用します。 jndi.properties
およびjboss-ejb-client.properties
の両方のプロパティをクライアントのクラスパスに追加します。