この章では、Eclipse IDE for Java EE Developers (Eclipse)のKeplerリリースとOracle Enterprise Pack for Eclipse 12.1.3.0.0 (OEPE)を設定して、CoherenceベースのJavaアプリケーションをビルドおよび実行する方法について説明します。
この章には次の項が含まれます:
Eclipse Keplerの構成済バージョンとOEPEプラグインがバンドルされたOEPE (12.1.3.0.0)のオールインワン・バージョンをダウンロードできます。オールインワン・バージョンをインストールすることをお薦めします。
また、OEPEディストリビューションを単独でダウンロードし、既存のEclipse Keplerインストールにインストールすることもできます。OEPEのインストーラには、Oracle WebLogic Server、Oracle CoherenceおよびOracle ADF Runtimeが含まれています。
どちらかのバージョンをダウンロードするには、次のOracle Enterprise Pack for Eclipseページの「Downloads」タブを選択します。
http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
インストーラの指示に従ってください。次のURLでインストール手順を参照することもできます。
http://docs.oracle.com/cd/E27086_01/help/oracle.eclipse.tools.common.doc/html/install.html
このチュートリアルは、次のようなファイル・システムのルートに作成したeclipse
フォルダにEclipseをインストールすることを前提としています。
C:\eclipse\*
Eclipseを起動して、Coherenceとともに使用できるように構成するには:
端末ウィンドウを開き、PATH
環境変数がJava JDKまたはJRE(例: C:\Oracle\Middleware\Oracle_Home\jdk1.7.0_25\bin
)を含むように設定されていることを確認します。Java JDKまたはJREバージョン7以上の作業用インストールが必要です。
PATH
環境変数にJava JDKまたはJREの\bin
フォルダが含まれていない場合は、変数を次のように設定してください。
JAVA_HOME
環境変数をJDKまたはJREインストールのベースに設定します。次に例を示します。
set JAVA_HOME=\Oracle\Middleware\Oracle_Home\jdk1.7.0_25
PATH
環境変数に%JAVA_HOME%\bin
を含めます。次に例を示します。
set PATH=%JAVA_HOME%\bin;%PATH%
Eclipseを起動します。
Eclipseの実行可能ファイルはeclipse.exe
です。eclipse
というディレクトリにEclipseを抽出した場合、eclipse.exe
は次の場所にあります。
C:\eclipse\eclipse.exe
Eclipseにより、「Workspace Launcher」ダイアログ・ボックスでワークスペースを設定または選択するよう求められたら、C:\home\oracle\workspace
と入力します。
図2-1に、パスC:\home\oracle\workspace
を選択した「Workspace Launcher」ダイアログ・ボックスを示します。
Eclipseが起動したら、「Java EE」パースペクティブを選択します。
「Window」を選択し、「Open」→「Perspective」→「Java EE」を選択します。または、
メニュー・バーの「Java EE」パースペクティブ・アイコンを選択します。
図2-2に、「Java EE」パースペクティブ・アイコンの場所を示します。
Eclipse IDEで新しいプロジェクトを作成するには:
「File」→「New」→「Application Client Project」を選択します。
「New Application Client Project」ダイアログ・ボックスで、「Project name」に値(Coherenceなど)を入力します。
図2-3 「New Application Client Project」ダイアログ・ボックス
「Configuration」セクションで「Modify」をクリックします。「Project Facets」ダイアログ・ボックスで、「Oracle Coherence」チェック・ボックスを選択します。ドロップダウン・リストからバージョン「12.1.3」を選択します(表示されていない場合)。
Oracle Coherenceファセットを追加すると、coherence.jar
がプロジェクト・クラス・パスに自動的に追加されます。また、Project Explorerで使用可能な、よく使用される次の構成ファイルが作成されます。
coherence-cache-config.xml
: デフォルトのキャッシュ構成ファイル
pof-config.xml
: Portable Object Formatシリアライズの構成ファイル
tangosol-coherence-override.xml
: Coherenceで使用される操作設定およびランタイム設定のオーバーライド・ファイル
図2-4 「Project Facets」ダイアログ・ボックスでの「Oracle Coherence」の選択
「Save As」をクリックして、「Save Preset」ダイアログ・ボックスで構成の名前を入力します。たとえば、「Name」フィールドにCoherenceConfig
と入力し、「Description」フィールドにIncludes
Coherence
Facet
と入力します。
図2-5に、「Save Preset」ダイアログ・ボックスを示します。
「OK」をクリックして、「Save Preset」ダイアログ・ボックスを閉じます。「OK」をクリックして、「Project Facets」ダイアログ・ボックスを閉じます。
「New Application Client Project」ダイアログ・ボックスの「Java」ページで「Next」をクリックして、デフォルト値を受け入れます。
「Application Client Module」ページの「Create a default Main class」の選択を解除します。「Next」をクリックします。
「Coherence」ページ(図2-6を参照)で、Coherence 12.1.3ライブラリをユーザー・ライブラリとしてプロジェクトに追加します。
「Manage Libraries...」アイコンをクリックし、「Preferences」ダイアログ・ボックスで「New」をクリックします。
「New User Library」ダイアログ・ボックス(図2-7を参照)でCoherence12.1.3と入力します。「System library (added to the boot class path)」チェック・ボックスを選択します。「OK」をクリックして、「New User Library」ダイアログ・ボックスを閉じます。
「Preferences」ダイアログ・ボックスで、「Add External JARs」をクリックしてcoherence.jar
ファイルをライブラリに追加します。「Coherenceのインストール」でファイル・システムにダウンロードしたCoherenceディストリビューションのcoherence.jar
ファイルの場所に移動します。
「Preferences」ダイアログ・ボックスは図2-8のようになります。「OK」をクリックして、「Preferences」ダイアログ・ボックスを閉じます。
図2-8 Coherenceユーザー・ライブラリに定義されたcoherence.jarファイル
「Coherence」ページで「Coherence12.1.3」ライブラリを選択し、「Finish」をクリックします。
Eclipse IDEの「Project Explorer」ウィンドウに新しいプロジェクトと関連ファイルが表示されます。
Eclipse IDEでプロジェクトを右クリックします。「Run As」→「Run Configurations」を選択します。「Run Configurations」ダイアログ・ボックスで、「Oracle Coherence」→「New launch configuration」アイコンを選択します。キャッシュ・サーバー構成の名前としてDefaultCacheServer
を入力します。
「Project」で「Browse」をクリックし、「Project Selection」ダイアログ・ボックスでプロジェクトの名前を選択します。
「Main class」で、「Include system libraries when searching for a main class」チェック・ボックスを選択します。「Search」ボタンをクリックし、「Select Main Type」ダイアログ・ボックスでDefaultCacheServer
と入力します。「com.tangosol.net.DefaultCacheServer」を選択し、「OK」をクリックします。「Apply」をクリックします。「Main」タブは図2-9のようになります。
「Coherence」タブで「General」タブを選択します。まだ選択されていない場合は、「Browse」アイコンをクリックしてキャッシュ構成ファイルに移動します。ローカル記憶域を有効(キャッシュ・サーバー)にするように選択します。「Cluster port」に一意の値(3155
など)を入力します。「Apply」をクリックします。「Coherence」タブは図2-10のようになります。
図2-10 「Run Configurations」ダイアログ・ボックスの「Coherence」タブ
「Arguments」タブを開きます。「VM Arguments」フィールドに-showversion
と入力します。「Apply」をクリックします。
ダイアログ・ボックスの「Common」タブを開きます。「Shared file」ラジオ・ボタンをクリックし、「Browse」をクリックしてプロジェクトに移動します。「Apply」をクリックします。「Common」タブは図2-11のようになります。
図2-11 「Run Configurations」ダイアログ・ボックスの「Common」タブ
「Run」をクリックして、キャッシュ・サーバーを起動します。キャッシュ・サーバーが起動し、例2-1のような出力が表示されます。
例2-1 Eclipseコンソール・ウィンドウでのキャッシュ・サーバーの出力
java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) 2013-11-14 11:47:51.241/0.562 Oracle Coherence 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/C:/Oracle/Middleware/Oracle_Home/coherence/lib/coherence.jar!/tangosol-coherence.xml" 2013-11-14 11:47:51.366/0.687 Oracle Coherence 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/C:/Oracle/Middleware/Oracle_Home/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml" 2013-11-14 11:47:51.444/0.765 Oracle Coherence 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "file:/C:/home/oracle/workspace/Coherence/build/classes/tangosol-coherence-override.xml" 2013-11-14 11:47:51.459/0.780 Oracle Coherence 12.1.3.0.0 <D5> (thread=main, member=n/a): Optional configuration override "cache-factory-config.xml" is not specified 2013-11-14 11:47:51.459/0.780 Oracle Coherence 12.1.3.0.0 <D5> (thread=main, member=n/a): Optional configuration override "cache-factory-builder-config.xml" is not specified 2013-11-14 11:47:51.459/0.780 Oracle Coherence 12.1.3.0.0 <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specified Oracle Coherence Version 12.1.3.0.0 Build 48392 Grid Edition: Development mode Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 2013-11-14 11:47:52.224/1.545 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded cache configuration from "jar:file:/C:/Oracle/Middleware/Oracle_Home/coherence/lib/coherence.jar!/coherence-cache-config.xml" 2013-11-14 11:47:52.396/1.717 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded cache configuration from "jar:file:/C:/Oracle/Middleware/Oracle_Home/coherence/lib/coherence.jar!/internal-txn-cache-config.xml" 2013-11-14 11:47:53.145/2.466 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Created cache factory com.tangosol.net.ExtensibleConfigurableCacheFactory 2013-11-14 11:47:54.128/3.449 Oracle Coherence GE 12.1.3.0.0 <D4> (thread=main, member=n/a): TCMP bound to /10.159.162.203:8088 using SystemDatagramSocketProvider 2013-11-14 11:47:58.107/7.428 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=Cluster, member=n/a): Created a new cluster "cluster:0x47DB" with Member(Id=1, Timestamp=2013-11-14 11:47:54.535, Address=10.159.162.203:8088, MachineId=47251, Location=site:,machine:TPFAEFFL-LAP,process:7096, Role=CoherenceServer, Edition=Grid Edition, Mode=Development, CpuCount=4, SocketCount=4) 2013-11-14 11:47:58.107/7.428 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=n/a): Started cluster Name=cluster:0x47DB Group{Address=224.12.1.0, Port=3155, TTL=4} MasterMemberSet( ThisMember=Member(Id=1, Timestamp=2013-11-14 11:47:54.535, Address=10.159.162.203:8088, MachineId=47251, Location=site:,machine:TPFAEFFL-LAP,process:7096, Role=CoherenceServer) OldestMember=Member(Id=1, Timestamp=2013-11-14 11:47:54.535, Address=10.159.162.203:8088, MachineId=47251, Location=site:,machine:TPFAEFFL-LAP,process:7096, Role=CoherenceServer) ActualMemberSet=MemberSet(Size=1 Member(Id=1, Timestamp=2013-11-14 11:47:54.535, Address=10.159.162.203:8088, MachineId=47251, Location=site:,machine:TPFAEFFL-LAP,process:7096, Role=CoherenceServer) ) MemberId|ServiceVersion|ServiceJoined|MemberState 1|12.1.3|2013-11-14 11:47:54.535|JOINED RecycleMillis=1200000 RecycleSet=MemberSet(Size=0 ) ) TcpRing{Connections=[]} IpMonitor{Addresses=0} 2013-11-14 11:47:58.138/7.459 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=Invocation:Management, member=1): Service Management joined the cluster with senior service member 1 2013-11-14 11:47:58.139/7.460 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=1): Loaded Reporter configuration from "jar:file:/C:/Oracle/Middleware/Oracle_Home/coherence/lib/coherence.jar!/reports/report-group.xml" 2013-11-14 11:47:58.623/7.944 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=NameService:TcpAcceptor, member=1): TcpAcceptor now listening for connections on 10.159.162.203:8088.3 2013-11-14 11:47:59.107/8.428 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=DistributedCache, member=1): Service DistributedCache joined the cluster with senior service member 1 2013-11-14 11:47:59.153/8.474 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=DistributedCache, member=1): This member has become the distribution coordinator for MemberSet(Size=1 Member(Id=1, Timestamp=2013-11-14 11:47:54.535, Address=10.159.162.203:8088, MachineId=47251, Location=site:,machine:TPFAEFFL-LAP,process:7096, Role=CoherenceServer) ) 2013-11-14 11:47:59.153/8.474 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=ReplicatedCache, member=1): Service ReplicatedCache joined the cluster with senior service member 1 2013-11-14 11:47:59.154/8.475 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=OptimisticCache, member=1): Service OptimisticCache joined the cluster with senior service member 1 2013-11-14 11:47:59.154/8.475 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=Invocation:InvocationService, member=1): Service InvocationService joined the cluster with senior service member 1 2013-11-14 11:47:59.154/8.475 Oracle Coherence GE 12.1.3.0.0 <Info> (thread=main, member=1): Services ( ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=12.1.3, OldestMemberId=1} InvocationService{Name=Management, State=(SERVICE_STARTED), Id=2, Version=12.1.3, OldestMemberId=1} PartitionedCache{Name=DistributedCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=220, BackupPartitions=0} ReplicatedCache{Name=ReplicatedCache, State=(SERVICE_STARTED), Id=4, Version=12.1.3, OldestMemberId=1} Optimistic{Name=OptimisticCache, State=(SERVICE_STARTED), Id=5, Version=12.1.3, OldestMemberId=1} InvocationService{Name=InvocationService, State=(SERVICE_STARTED), Id=6, Version=12.1.3, OldestMemberId=1} ) Started DefaultCacheServer...
ここでは、Eclipse IDEでのプロジェクトのビルドに含まれる一般的な作業について説明します。
Eclipse IDEで新しいJavaクラスを作成するには:
「Project Explorer」ウィンドウでプロジェクト・エントリを右クリックします。「New」→「Class」を選択します。
「New Java Class」ダイアログ・ボックスでパッケージ名を入力します。このチュートリアルでは通常、値はcom.oracle.handson
になります。
「Name」フィールドにクラスの名前を入力します。
「Which method stubs would you like to create?」で、次の操作を行います。
ファイルを実行可能にするには、「public static void main(String[]args)」を選択します。
新しいクラスのスーパークラス内のコンストラクタのスタブを追加するには、「Constructors from superclass」チェック・ボックスを選択します。
「Inherited abstract methods」がデフォルトで選択されています。このオプションを選択すると、実装する必要があるインタフェースのスーパークラスまたはメソッド内の抽象メソッドのスタブが追加されます。
「OK」をクリックして、Javaクラスを作成します。
図2-12に、「New Java Class」ダイアログ・ボックスを示します。
実行可能ファイルのランタイム構成を作成するには:
「Project Explorer」ウィンドウで実行可能ファイルの名前を右クリックします。「Run As」→「Run Configurations」を選択します。
「Oracle Coherence」→「New Launch Configuration」アイコンをクリックします。「Java Application」ノードを選択します。「New Launch Configuration」ボタンをクリックします。
新規構成の名前を入力します。「Main」タブの「Project」で、「Browse」ボタンをクリックして現在のプロジェクトの名前に移動します。「Search」ボタンをクリックして、ランタイム構成を作成している実行可能ファイルの名前に移動します。「Apply」をクリックします。
次の図に、「Run Configurations」ダイアログ・ボックスの「Main」タブを示します。
「Coherence」タブをクリックします。「General」タブで、よく使用する、構成のVMランタイム引数の多くを設定できます。ランタイム引数の例としては、キャッシュ構成ディスクリプタへのパスのほか、ローカル記憶域、ログ・レベル、クラスタ・ポートの値などがあります。
図2-14に、「Run Configurations」ダイアログ・ボックスの「Coherence」タブの「General」タブを示します。
Eclipse IDEでは、Eclipseコンソールで「Terminate」アイコンおよび「Remove all terminated launches」アイコンをクリックすることによって、実行中のキャッシュ・サーバーまたはクライアントを停止できます。
しかし、「Windows タスク マネージャー」ウィンドウを調べると、サーバーまたはクライアントに関連するJavaプロセス(java.exe
)がまだ実行中になっている場合があります。サーバーまたはクライアントの再起動時にエラーがスローされないようにするには、関連するJavaプロセスを削除する必要があります。「Windows タスク マネージャー」ウィンドウでJavaプロセスを選択し、「プロセスの終了」をクリックしてください。
図2-15に、Javaプロセスを選択した「Windows タスク マネージャー」ウィンドウを示します。