0) { obj.className = "imgborder_on"; } } } function hideImage(obj) { if (obj.className.substr(0, 10) == "imgborder_") { obj.src = eyeglass.src; obj.className = "imgborder_off"; } } function showAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { showImage(imgs[i]); } } function hideAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { hideImage(imgs[i]); } } function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //-->
OC4Jにおける空間Webサービスのインストールと構成
目的
このチュートリアルでは、空間データを使用してWebサービスを公開する方法について説明します。
所要時間
約1時間
トピック
このチュートリアルでは、以下のトピックについて説明します。
スクリーンショットの表示
このアイコンの上にカーソルを置くと、
すべてのスクリーンショットがロードし、表示されます。
(警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)
注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。
概要
このチュートリアルでは、Oracle Spatialの空間Webサービスのサポートについて紹介します。 Oracle Spatialには、次の種類のWebサービスがあります。
|
Web Feature Services(WFS)は、位置との関係および非空間属性に基づいて、地物(道路や河川など)を検索および更新できます。 このWebサービスは、WFS 1.0.0のOpen GIS Consortium(OGC)仕様のOracle Spatialの実装です。
|
|
Catalogue services for Web(CSW)は、データ、サービス、関連情報オブジェクトの説明(メタデータ)の集合を公開および検索する機能をサポートします。 このWebサービスは、CSW 2.0.0のOGC仕様のOracle Spatialの実装です。
|
|
Open Location Services(OpenLS)は、ジオコーディング、マッピング、ルーティング、イエロー・ページなど、位置ベースのサービスを提供します。 ジオコーディングを使用すると、空間位置(経緯度座標)と住所を関連付けることができます。
マッピングを使用すると、空間位置情報に基づいてマップを作成できます。 イエロー・ページを使用すると、位置との関係に基づいて、企業を名前またはカテゴリで検索できます。 ルーティングは、個別ルートまたは複数ルートの運転情報および運転指示を提供します。
このWebサービスを使用して、OGCにより定義されたOpenLS 1.1仕様に適合するルーティング、ジオコーディング、マッピング、ディレクトリ機能など、Oracle Spatialのさまざまな既存機能にアクセスできます。
|
このチュートリアルでは、OC4J(Oracle Containers for Java)における空間Webサービスのインストール方法および構成方法について学習します。
『
Oracle Spatial Webサービスの実行』のチュートリアルでは、前述のさまざまなWebサービス(WFS、CSWおよびOpenLS)でWebサービス・クライアントのデモを実行する方法について学習します。
トピック・リストに戻る
前提条件
このチュートリアルを始める前に、次のことを実行してください。
|
Oracle Database 11gソフトウェアがインストールされ、データベースが作成されていること。
|
|
OTNからOracle JDeveloperをダウンロードして、任意のディレクトリに解凍すること。
|
|
Javasoftから最新のJ2SEをダウンロードしてインストールすること。
|
|
作業ディレクトリを作成して、
$ORACLE_HOME/md/demo/ws/clientディレクトリの
wsclient.jarを作業ディレクトリにコピーすること。
|
|
xsds.jarファイルを作業ディレクトリにダウンロードすること。
|
|
次のユーザーのロックが解除されているかどうか確認すること。
mdsys、spatial_csw_admin_usr、spatial_wfs_admin_usr。SQL*Plusを開いて、次のコマンドを実行します。
connect sys/oracle as sysdba
alter user mdsys identified by oracle account unlock;
alter user spatial_csw_admin_usr identified by oracle account unlock;
alter user spatial_wfs_admin_usr identified by oracle account unlock;
|
トピック・リストに戻る
OC4Jの構成
この項では、OC4Jを構成して空間Webサービスおよび空間Webサービスのデモ・ユーザーをインストールする手順について説明します。 以下の手順を実行します。
トピック・リストに戻る
テスト・ユーザーの構成
| 1.
|
端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>/j2ee/home/config
gedit system-jazn-data.xml
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
|
| 2.
|
ここからexampleusers.txtファイルを開きます。 すべてのテキストを選択し、
[Ctrl]+[C]を押してコピーします。 Linuxデスクトップのgeditウィンドウに切り替えます。
[Ctrl] + [V]を押して、system-jazn-data.xmlファイルの最後の<user>セクションの後に次の文を追加します。
<user>
<name>SpatialWsUser0</name>
<display-name>Spatial WS user 0</display-name>
<description>Used for SpatialWs</description>
<credentials>!welcome</credentials>
</user>
<user>
<name>SpatialWsUser1</name>
<display-name>Spatial WS user 1</display-name>
<description>Used for SpatialWs</description>
<credentials>!welcome</credentials>
</user>
<user>
<name>SpatialWsUser2</name>
<display-name>Spatial WS user 2</display-name>
<description>Used for SpatialWs</description>
<credentials>!welcome</credentials>
</user>
<user>
<name>SpatialWsUser3</name>
<display-name>Spatial WS user 3</display-name>
<description>Used for SpatialWs</description>
<credentials>!welcome</credentials>
</user>
<user>
<name>wfs_rel_user</name>
<display-name>wfs_rel_user</display-name>
<description>Spatial WFS user </description>
<credentials>!wfs_rel_user</credentials>
</user>
<user>
<name>wfs_doc_user</name>
<display-name>wfs_doc_user</display-name>
<description>Spatial WFS user </description>
<credentials>!wfs_doc_user</credentials>
</user>
<user>
<name>csw_user</name>
<display-name>csw_user</display-name>
<description>Spatial CSW user </description>
<credentials>!csw_user</credentials>
</user>
geditウィンドウの「
ファイル」メニューから、「
保存」を選択して変更を保存するか、またはツールバーの「
保存」アイコンをクリックします。 「
ファイル」メニューから「
閉じる」を選択して、エディタを終了します。
|
トピックに戻る
OC4Jパス設定の構成
| 1.
|
端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>/bin
gedit oc4j
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
注:ファイルが読取り専用モードで開かれる場合は、エディタを終了してください。 端末ウィンドウで
rootとしてログインし、chmodコマンドを使用して、読取り/書込みおよび実行可能にアクセスを変更します。 その後、geditで再びファイルを開きます。 アクセス・モードを変更するコマンドは、以下のとおりです。
chmod 777 oc4j
|
| 2.
|
ファイルの先頭に次の文を追加します。
ORACLE_HOME=<jdevhome directory>
JAVA_HOME=<jdk home directory>
ファイルを保存して、エディタを終了します(oracleユーザーとしてファイルを保存することはできません。スーパーユーザー(su)としてログインした場合は、ファイルを保存できます)。
|
トピックに戻る
共有ライブラリの作成と登録
| 1.
|
端末ウィンドウから、次のコマンドを入力して共有ライブラリ・ディレクトリを作成します。
mkdir <jdevhome directory>/j2ee/home/shared-lib/sdows
mkdir <jdevhome directory>/j2ee/home/shared-lib/sdows/1.0
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
|
| 2.
|
server.xmlファイルにライブラリを登録するには、次のコマンドを入力します。
cd <jdevhome directory>/j2ee/home/config
gedit server.xml
次に、
rmi-config文の直前に次の文を追加します。
<shared-library name="sdows" version="1.0">
<code-source path="*"/>
<import-shared-library name="oracle.xml"/>
<import-shared-library name="oracle.jdbc"/>
</shared-library>
ファイルを保存して、エディタを終了します。
|
| 3.
|
現在の作業ディレクトリが
<jdevhome directory>/j2ee/home/config
であることを確認します。
application.xmlファイルにライブラリを登録するには、次のコマンドを入力します。
gedit application.xml
次に、
</imported-shared-libraries>文の直前に次の文を追加します。
<import-shared-library name="sdows"/>
ファイルを保存して、エディタを終了します。
|
トピックに戻る
共有ライブラリ・ディレクトリへのファイルのコピー
| 1.
|
端末ウィンドウで次のコマンドを入力して、$ORACLE_HOME/md/jlibおよび$ORACLE_HOME/rdbms/jlibのファイルを、作成した共有ライブラリ・ディレクトリにコピーします。
cd <jdevhome directory>/j2ee/home/shared-lib/sdows/1.0
cp $ORACLE_HOME/md/jlib/sdowfscs.jar .
cp $ORACLE_HOME/md/jlib/sdoutl.jar .
cp $ORACLE_HOME/md/jlib/sdotype.jar .
cp $ORACLE_HOME/md/jlib/sdoapi.jar .
cp $ORACLE_HOME/md/jlib/sdowshandlers.jar .
cp $ORACLE_HOME/md/jlib/sdowspool.jar .
cp $ORACLE_HOME/md/jlib/sdowshandlerols.jar .
cp $ORACLE_HOME/rdbms/jlib/xdb.jar .
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。$ORACLE_HOMEは、Oracle Databaseのホーム・ディレクトリです。
|
トピックに戻る
xmlparserv2.xdkファイルへのパッチ適用
| 1.
|
端末ウィンドウで次のコマンドを入力して、
xmlparserv2.jarファイルを$ORACLE_HOME/libから
<jdevhome directory>/libディレクトリにコピーします。
cd <jdevhome directory>/lib
cp $ORACLE_HOME/lib/xmlparserv2.jar .
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。$ORACLE_HOMEは、Oracle Databaseのホーム・ディレクトリです。
|
トピックに戻る
wsclient.jarファイルの抽出
| 1.
|
端末ウィンドウで次のコマンドを入力して、このチュートリアルで提供されているwsclient
.jarファイルを抽出します。
端末ウィンドウで次のコマンドを入力します。
cd $CLIENT_HOME
jar -xvf wsclient.jar
$CLIENT_HOMEは、wsclient.jarファイルを抽出するディレクトリです。
wsclient.jarファイルは、任意のディレクトリに抽出できます。
|
トピックに戻る
OC4Jの起動
この項では、OC4Jインスタンスを起動する方法について説明します。
以下の手順に従います。
| 1.
|
端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>/bin
./oc4j -start
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
注:パスワードを指定するよう要求されたら、
admin
と入力してください。 再度adminと入力して、パスワードを確認します。 OC4Jサーバーが起動されたことを示す"Oracle Containers for J2EE 10g(10.1.3.1.1)initialized"というメッセージが表示されます。
|
トピック・リストに戻る
EARファイルの配置
この項では、前の手順で起動したOC4Jインスタンスに、空間Webサービスを配置する方法について説明します。
以下の手順に従います。
| 1.
|
別の端末ウィンドウを開き、次のコマンドを入力して
$JAVA_HOME変数を設定します。 ORACLE_HOME変数が設定されていることを確認します。 設定されていない場合は、exportコマンドを使用して、ORACLE_HOME変数をOracle Databaseのホーム・ディレクトリに設定してください。
export JAVA_HOME=/usr/java/<jdk dir>/
|
| 2.
|
EARファイルを配置する準備ができました。 端末ウィンドウで次のコマンドを入力します。
$JAVA_HOME/bin/java -jar <jdev_home>/j2ee/home/admin.jar ormi://localhost oc4jadmin admin
-deploy -file $ORACLE_HOME/md/jlib/sdows.ear -deploymentName sdows -bindWebApp
default-web-site
$ORACLE_HOMEは、Oracle Databaseのホーム・ディレクトリです。
|
トピック・リストに戻る
データソースの構成
この項では、空間Webサービスで使用するデータソースを構成する方法について説明します。 以下の手順を実行します。
| 1.
|
データソースを構成する前に、OC4Jを停止します。 端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>\bin
./oc4j -shutdown -port 23791 -password admin
注:ポート番号は
<jdevhome directory>/j2ee/home/config/rmi.xmlファイルで確認できます。
|
| 2.
|
端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>/j2ee/home/applications/sdows/META-INF
gedit data-sources.xml
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
ネイティブ・データソースのURLパラメータ、ユーザー・パラメータ、およびパスワード・パラメータをそれぞれ設定します。
次のネイティブ・データソースについて、変更を行います。
|
jdev-connection-WfsProxyConnection
|
|
jdev-connection-NdmProxyConnection
|
|
jdev-connection-CatalogProxyConnection
|
|
jdev-connection-OpenLsProxyConnection
|
|
jdev-connection-ConferenceProxyConnection
|
URLパラメータ、ユーザー・パラメータ、およびパスワード・パラメータをそれぞれ次のように変更します。
url="jdbc:oracle:thin:@localhost:1521:orcl"
user="mdsys"
password="oracle"
jdev-connection-CSW_ADMIN_CONN_NAMEおよび
jev-connection-WFS_ADMIN_CONN_NAMEのネイティブ・データソースについては、URLパラメータとパスワード・パラメータのみを次のように変更します。
url="jdbc:oracle:thin:@localhost:1521:orcl"
password="oracle"
終了したら、ファイルを保存して閉じます。
|
| 3.
|
OGC WFS XSDを、任意のURLにロードします。 xsds.jarファイルを<jdevhome directory/j2ee/home/default-web-app/examples/servlets/ディレクトリに抽出します。 このディレクトリは、xsds.jarファイルから抽出したファイルが保存される場所です。
xsds.jarファイルを抽出するディレクトリを変更するには、次のコマンドを入力します。
cd <jdevhome directory/j2ee/home/default-web-app/examples/servlets/
xsds.jarファイルは、前提条件の項のリンクから任意のディレクトリにダウンロードしています。 xsds.jarファイルからファイルを抽出するには、次のコマンドを入力します。
jar -xvf <directorylocation where you downloaded the xsds.jar file>/xsds.jar
|
| 4.
|
WSConfig.xmlファイルを編集して、xsdファイルのURLを指定します。 端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>/j2ee/home/applications/sdows/sdows/WEB-INF/conf
gedit WSConfig.xml
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
次に示すように、WSConfig.xmlファイルのwfs-xsd-loc-urlをXSDSが保存されるパスに変更します。
<wfs_xsd_loc_url>http://<machine_name>:8888/examples/servlets/xsds/</wfs_xsd_loc_url>
コメント・タグを必ず削除してください。
ファイルを保存して、エディタを終了します。
|
| 5.
|
wfsrelmd.sql、wfsdocmd.sql、およびcswmd.sqlを編集して、$DATA_DIR_PATHを
srcディレクトリのある場所に変更します。 srcディレクトリは、wsclient.jarファイルを抽出したときに作成されています。
端末ウィンドウで次のコマンドを入力します。
cd $CLIENT_HOME/src/sql
gedit wfsrelmd.sql
ここで、$CLIENT_HOMEhはwsclient.jarファイルを抽出したディレクトリです。
以下のスクリーンショットに示すように、$DATA_DIR_PATHをsrcディレクトリのパスに変更します。
変更を保存します。
同様に、以下のスクリーンショットで示すように、同じフォルダ内の
wfsdocmd.sqlを編集して、$DATA_DIR_PATHをsrcディレクトリのパスに変更します。 ファイルを保存します。
スクリーンショットに示すように、
cswmd.sqlを編集します。 ($DATA_DIR_PATH変数は、ファイルのほぼ最後にあります。下方向にスクロールしてください。)
ファイルを保存し、エディタを終了します。
|
| 6.
|
接続文字列(データベースのマシン名、ポート番号、Oracle SIDなど)を変更し、実際の情報を次のファイルに反映させます。
- WFSの場合:oracle.spatial.ws.admindemo.WFSAdminDemo.javaファイル
- CSWの場合:oracle.spatial.ws.admindemo.CSWAdminDemo.javaファイル
端末ウィンドウで次のコマンドを入力します。
cd $CLIENT_HOME/src/oracle/spatial/ws/admindemo
gedit WFSAdminDemo.java
ここで、$CLIENT_HOMEhはwsclient.jarファイルを抽出したディレクトリです。
次に示すように編集します。
OracleConnection conn =
(OracleConnection) DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:orcl","WFS_ADMIN_USR","WFS_ADMIN_USR");
ファイルを保存します。
同様に、CSWAdminDemo.javaファイルを編集します。
OracleConnection conn=
(OracleConnection) DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:orcl","csw_admin_usr","csw_admin_usr");
ファイルを保存して、エディタを終了します。
|
| 7.
|
TestWfsCsBase.javaファイルのmyPort.setEndpoint("http://localhost:8888/SpatialWS-SpatialWS-context-root/SpatialWSSoapHttpPort")を変更して、OC4Jのサーバー・マシン名とポート番号を反映させます。
このチュートリアルでは、マシン名をlocalhost、ポート番号を8888と入力します。
端末ウィンドウで次のコマンドを入力します。
cd $CLIENT_HOME/src/oracle/spatial/ws/svrproxy
gedit TestWfsCsBase.java
$CLIENT_HOMEは、wsclient.jarファイルを抽出したディレクトリです。
次のように変更します。
myPort.setEndpoint
("http://localhost:8888/SpatialWS-SpatialWS-context-root/SpatialWSSoapHttpPort");
|
| 8.
|
ここで、OC4Jを再起動してください。 端末ウィンドウで次のコマンドを入力します。
cd <jdevhome directory>/bin
./oc4j -start
<jdevhome directory>は、Oracle JDeveloperを解凍したディレクトリです。
|
トピック・リストに戻る
データソースの確認
次の手順で、デモに必要なデータソース・パラメータが正しく設定されていることを確認できます。 以下の手順を実行します。
| 1.
|
ブラウザ・ウィンドウを開いて、次のURLを入力します。
http://<hostname>:8888/em
このチュートリアルでは、ホスト名にlocalhostを使用します。
oc4jadminとしてログインし、パスワードに
adminと入力します。 このパスワードは、OC4Jを起動したときに作成したパスワードです。 次に、「
Login」をクリックします。
|
| 2.
|
Supply Administration Credentialsページで、oc4j-administratorsグループのユーザーの資格証明を入力します。 この資格証明は、Application Server Controlがプロキシ接続を維持するために必要です。 パスワードに
adminを入力します。
|
| 3.
|
「
Administration」タブをクリックします。
|
| 4.
|
「
Services」→「
JDBC Resources」タスクの「
Go to Task」アイコンをクリックします。
|
| 5.
|
データソースのリストが表示されます。 任意のデータソースの「
Test Connection」アイコンをクリックします。
Test Connectionページが表示されたら、「
Test」をクリックします。
接続が確立したことが確認できます。
「
Logout」をクリックします。
|
トピック・リストに戻る
クライアントの構成と実行
クライアントのコンパイルと実行の準備ができました。 以下の手順を実行します。
| 1.
|
compileAndRunClient.shファイルに、次の変数を設定します。
|
JAVA_HOME
|
JDKの場所に設定します。 |
|
spatialws_lib
|
Oracle JDeveloperのインストール・ディレクトリに設定します。 |
|
spatialws_server_lib
|
OC4Jサーバーのsdows共有ライブラリに設定します。 |
|
spatial_ws_srcpath
|
wsclient.jarファイルから抽出したsrcディレクトリに設定します。 |
|
spatialws_target
|
生成されるクラス・ファイルのターゲット・パスに設定します。 ソース・パスを再利用します。 |
次のコマンドを入力します。
cd $CLIENT_HOME/src
gedit compileAndRunClient.sh
$CLIENT_HOMEは、wsclient.jarファイルを抽出したディレクトリです。
スクリーンショットは、設定されたパラメータを示します。
ファイルを保存して、エディタを終了します。
|
| 2.
|
端末ウィンドウで次のコマンドを入力します。
./compileAndRunClient.sh
|
トピック・リストに戻る
まとめ
このチュートリアルで学習した内容は、次のとおりです。
|
OC4Jの構成と起動 |
|
EARファイルの配置 |
|
データソースの構成と確認 |
|
クライアントの構成と実行 |
トピック・リストに戻る
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|