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を構成して空間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インスタンスを起動する方法について説明します。 以下の手順に従います。

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"というメッセージが表示されます。

トピック・リストに戻る

この項では、前の手順で起動した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パラメータ、ユーザー・パラメータ、およびパスワード・パラメータをそれぞれ設定します。

次のネイティブ・データソースについて、変更を行います。

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ファイルに、次の変数を設定します。

次のコマンドを入力します。

cd $CLIENT_HOME/src
gedit compileAndRunClient.sh

$CLIENT_HOMEは、wsclient.jarファイルを抽出したディレクトリです。

スクリーンショットは、設定されたパラメータを示します。

ファイルを保存して、エディタを終了します。

 

2.

端末ウィンドウで次のコマンドを入力します。

./compileAndRunClient.sh

 

トピック・リストに戻る

このチュートリアルで学習した内容は、次のとおりです。

OC4Jの構成と起動
EARファイルの配置
データソースの構成と確認
クライアントの構成と実行

トピック・リストに戻る

このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。


Copyright (c) Oracle Corporation 2007 All Rights Reserved
Oracle Corporation発行の「Installing and Configuring Spatial Web Service in OC4J」の翻訳版です。

この文書はあくまで参考資料であり、掲載されている情報は予告なしに変更されることがあります。 万一、誤植などにお気づきの場合は、オラクル社までお知らせください。 オラクル社は本書の内容に関していかなる保証もしません。 また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleはオラクル社の登録商標です。
その他の会社名および製品名は、 あくまでその製品および会社を識別する目的にのみ使用されており、 それぞれの所有者の商標または登録商標です。