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の両方のプロパティをクライアントのクラスパスに追加します。