Oracle Spatial Webサービスの実行

このチュートリアルでは、Web Feature Service(WFS)、Catalog Services for the Web(CSW)、Open Location Services(OpenLS)などのOracle Spatial Webサービス用のデモ・ファイルの使用法について説明します。

約30分

このチュートリアルでは、以下のトピックについて説明します。

このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードされ、表示されます。 (警告: すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)

注: 各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

チュートリアル『OC4Jにおける空間Webサービスのインストールと構成』では、Oracle Application Server Containers for J2EE(OC4J)へのOracle Spatial Webサービスのインストールと設定を行いました。 ここでは、WFS、CSW、OpenLSなどのOracle Spatial Webサービス用に提供されたデモ・ファイルを使用します。

このチュートリアルを始める前に、次の手順を完了してください。

チュートリアル『OC4Jにおける空間Webサービスのインストールと構成』の実行

トピック・リストに戻る

以下の手順を実行します。

リレーショナル地物タイプとドキュメント・ベースの地物タイプの移入

1.

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

cd $CLIENT_HOME/src/sql
sqlplus / as sysdba

$CLIENT_HOME は、wsclient.jar ファイルの展開先ディレクトリを表します。

 

2.

リレーショナル地物タイプを移入するには、次のSQLスクリプトを実行します。

@wfsrelmd.sql

wfsrelmd.sqlにより、ユーザー、表、および索引が作成されて権限が付与され、PL/SQLプロシージャが実行されます。 次のスクリーンショットでは、出力の一部のみを示しています。

 

3.

ドキュメント・ベースの地物タイプを移入するには、次のSQLスクリプトを実行します。

@wfsdocmd.sql

wfsdocmd.sqlスクリプトにより、ユーザー、表、および索引が作成されて権限が付与され、PL/SQLプロシージャが実行されます。 次のスクリーンショットでは、出力の一部のみを示しています。

SQL*Plusを終了します。

 

トピックに戻る

地物タイプの作成

1.

地物タイプを作成する(java oracle.spatial.ws.admin demo.WFSAdminDemo SampleFeature ./data/datafeatures.xsd ./data/fd_sample.xml create)には、次のコマンドを入力します。

cd $CLIENT_DIR/src
./compileAndRunClient.sh runwfsct

CLIENT_DIRには、srcフォルダを展開したパスを指定します。

 

2.

新しい端末ウィンドウで、OC4Jサーバーを開始します。 次のコマンドを入力します。

cd <jdevhome directory>/bin
./oc4j -start

トピックに戻る

リレーショナルWFSデモの実行

リレーショナル・ベースのWFSデモでは、リレーショナル・ベースの地物タイプに対する、以下のWFSリクエスト・タイプの処理を行います。

 
 
 

WFSデモを実行すると、WFSサーバーにより入力が順次処理され、出力が生成されます。 入力ファイルは、wfsrel_01.xmlwfsrel_02.xmlをはじめとするwfsrel_22.xmlまでのファイルです。 入力XMLファイルであるwfsrel_*.xmlファイルはwsclient.jarファイルに含まれており、$CLIENT_HOME/src/dataフォルダからアクセスできます。 生成される出力ファイルは、wfsrel_01.logwfsrel_02.logをはじめとするwfsrel_22.logまでのファイルです。 WFSデモを実行するには、以下の手順に従います。

1.

リレーショナルWFSデモを実行するには、次のコマンドを入力します($CLIENT_DIRは、このデモのsrc/コンテンツが含まれるクライアント・ディレクトリです)。

cd $CLIENT_DIR/src/data
cp wfsMapFile_rel.txt wfsMapFile.txt

 

2. 次に、以下に従ってWFSデモを実行(java oracle.spatial.ws.svrproxy.TestWFS wfs_rel_user wfs_rel_user)します。

cd $CLIENT_DIR/src
./compileAndRunClient.sh runwfsrel

./compileAndRunClient.sh runwfsrelコマンドを実行すると、src/data/wfsrel_*.xmlファイルにアクセスします。 該当する出力ファイルは、src/dataディレクトリにwfsrel_*.logファイルとして生成されます。

次のスクリーンショットでは、完全な出力を示しています。

 

トピックに戻る

リクエストXMLとレスポンスXMLの例

以下に、地物タイプ別の入力ファイルと出力ファイルの内容を示します。

次に、wfsrel_01.xmlと、それに対応する出力であるwfsrel_01.logの内容を確認します。 上述のとおり、wfsrel_01.xmlはGetFeatureのリクエスト例です。 入力ファイルはwsclient.jarに含まれています。 すべての出力ファイルは、デモの実行時に$CLIENT_HOME/src/dataディレクトリに生成されます。 その他の入力ファイルや対応する出力ファイルを確認するには、$CLIENT_HOME/src/dataディレクトリにアクセスします。

1.

次のスクリーンショットは、入力XMLであるwfsrel_01.xmlファイルの内容です。

次のスクリーンショットは、対応する出力ファイルwfsrel_01.logの内容です。

 

トピックに戻る

ドキュメント・ベースのWFSデモの実行

ドキュメント・ベースのWFSデモでは、ドキュメント(外部XSD)ベースの地物タイプに対する、以下のWFSリクエスト・タイプの処理を行います。

 
 
 

ドキュメント・ベースのWFSデモを実行すると、WFSサーバーにより入力が順次処理され、出力が生成されます。 入力ファイルは、wfsdoc_01.xmlwfsdoc_02.xmをはじめとするwfsdoc_20.xmlまでのファイルです。 入力XMLファイルであるwfsdoc_*.xmlファイルはwsclient.jarファイルに含まれており、$CLIENT_HOME/src/dataフォルダからアクセスできます。 生成される出力ファイルは、wfsdoc_01.logwfsdoc_02.logをはじめとするwfsdoc_20.logまでのファイルです。 ドキュメント・ベースのWFSデモを実行するには、以下の手順に従います。

1.

ドキュメント・ベースのWFSデモを実行するには、次のコマンドを入力します($CLIENT_DIRは、このデモのsrc/コンテンツが含まれるクライアント・ディレクトリです)。

cd $CLIENT_DIR/src/data
cp wfsMapFile_doc.txt wfsMapFile.txt

 

2.

次に、以下に従ってドキュメント・ベースのデモを実行(java oracle.spatial.ws.svrproxy.TestWFS wfs_doc_user wfs_doc_user)します。

cd $CLIENT_DIR/src
./compileAndRunClient.sh runwfsdoc

次のスクリーンショットでは、完全な出力を示しています。

 

トピックに戻る

リクエストXMLとレスポンスXMLの例

以下に、地物タイプ別の入力ファイルと出力ファイルの内容を示します。

次に、wfsdoc_06.xmlと、それに対応する出力であるwfsdoc_06.logの内容を確認します。

入力ファイルはwsclient.jarに含まれています。 すべての出力ファイルは、デモの実行時に$CLIENT_HOME/src/dataディレクトリに生成されます。 その他の入力ファイルや対応する出力ファイルを確認するには、$CLIENT_HOME/src/dataディレクトリにアクセスします。

1.

入力ファイルwfsdoc_06.xmlの内容を確認します。 上述のとおり、wfsdoc_06.xmlは更新トランザクションのリクエスト例です。

 

2.

次のスクリーンショットに、レスポンスであるwfsdoc_06.logファイルの内容を示します。

 

トピックに戻る

地物タイプの削除

1.

リレーショナル地物タイプを削除するには、次のコマンドを実行します。

cd $CLIENT_DIR/src/sql
sqlplus / AS SYSDBA

SQLスクリプトのdrprelmd.sqlを実行します。.

@drprelmd.sql

SQL*Plusを終了します。

2.

ドキュメント・ベースの地物タイプを削除するには、次のコマンドを実行します。

cd $CLIENT_DIR/src
./compileAndRunClient.sh runwfsdt

 

3.

OC4Jサーバーを停止します。 次のコマンドを入力します。

cd <Jdev directory>/bin
./oc4j -shutdown -port 23791 -password admin

 

トピックに戻る

以下の手順に従います。

トピック・リストに戻る

レコード・タイプの移入と作成

1.

次のコマンドを入力して、CSWデモ用のレコード・タイプを移入します($CLIENT_HOMEは、このデモのsrc/コンテンツが含まれるクライアント・ディレクトリです)。

cd $CLIENT_HOMR/src/sql
sqlplus / as sysdba
@cswmd.sql
    
cswmd.sqlスクリプトにより、ユーザー、表、および索引が作成されて権限が付与され、PL/SQLプロシージャが実行されます。 次のスクリーンショットでは、出力の一部のみを示しています。

SQL*Plusを終了します。

 

2.

タイプを作成するには、以下のとおり、Javaクラスoracle.spatial.ws.admindemo.CSWAdminDemo createRecordTypeを使用します。

cd $CLIENT_HOME/src
./compileAndRunClient.sh runcswct

 

3.

新しい端末ウィンドウで、OC4Jサーバーを開始します。 次のコマンドを入力します。

cd <jdevhome directory>/bin
       ./oc4j -start       

 

トピックに戻る

CSWデモの実行

CSWデモは、以下のCSWリクエスト・タイプの処理を行います。

 
 
 

CSWデモを実行すると、CSWサーバーにより入力が順次処理され、出力が生成されます。 入力ファイルは、csw_01.xmlcsw_02.xmlをはじめとするcsw_36.xmlまでのファイルです。 入力XMLファイルであるcsw_*.xmlファイルはwsclient.jarファイルに含まれており、$CLIENT_HOME/src/dataフォルダからアクセスできます。 生成される出力ファイルは、csw_01.logcsw_02.logをはじめとするcsw_36.logまでのファイルです。 CSWデモを実行するには、以下の手順に従います。

1.

CSWデモを実行(java oracle.spatial.ws.svrproxy.TestCSW csw_user csw_user)するには、次のコマンドを入力します($CLIENT_HOMEは、このデモのコンテンツが含まれるクライアント・ディレクトリです)。

cd $CLIENT_HOME/src
./compileAndRunClient.sh runcsw

 

トピックに戻る

リクエストXMLとレスポンスXMLの例

以下に、CSWリクエスト・タイプ別の入力ファイルと出力ファイルの内容を示します。

次に、csw_08.xmlと、それに対応する出力であるcsw_08.logの内容を確認します。 入力ファイルはwsclient.jarに含まれています。 すべての出力ファイルは、デモの実行時に$CLIENT_HOME/src/dataディレクトリに生成されます。 その他の入力ファイルや対応する出力ファイルを確認するには、$CLIENT_HOME/src/dataディレクトリにアクセスします。

1.

入力ファイルcsw_08.xmlの内容を確認します。 上述のとおり、csw_08.xmlはGetRecordByIdのリクエスト例です。

 

2.

次に、対応する出力ファイルのcsw_08.logを示します。

トピックに戻る

レコード・タイプの削除

1.

CSWレコード・タイプを削除(java oracle.spatial.ws.admindemo.CSWAdminDemo
dropRecordType
)するには、次のコマンドを入力します($CLIENT_DIRは、このデモのsrc/コンテンツを含むクライアント・ディレクトリです)。

cd $CLIENT_HOME/src
./compileAndRunClient.sh runcswdt

2.

OC4Jサーバーを停止します。 次のコマンドを入力します。

cd <Jdev directory>\bin
./oc4j -shutdown -port 23791 -password admin

 

トピックに戻る

トピック・リストに戻る

以下の手順に従います。

トピック・リストに戻る

olscreate.sqlスクリプトの更新と実行

1.

次のファイルを探します。

- src/sql/olslocut.dmp
- src/sql/olscreate.sql

olscreate.sqlを編集します。 次のコマンドを入力します。

cd $CLIENT_HOME/src/sql
gedit olscreate.sql

 

2.

olscreate.sqlファイルで、"connect user/password"の個所を変更して、使用するユーザー名とパスワードを指定します。 このチュートリアルでは、systemおよびmdsysのパスワードをoracleに変更します。

注: プレゼンテーション・サービスおよびルーティング・サービスについては、insert(...)文とassign_acl(...)文を更新して、正しいRoute ServerとMapViewerのURLを指定する必要があります。 Oracle Location Serviceにアクセスできる場合、これらのURLを設定してアクセスしてから、プレゼンテーション・サービスとルーティング・サービスのOpenLS SQLデモを実行します。 Oracle Location Serviceにより、ルーティングとマッピングのリクエストを処理する機能が提供されます。

Oracle Route Serverの詳細は『Oracle Spatial開発者ガイド』のルーティング・エンジンに関する章を参照してください。 Oracle MapViewerの詳細を確認するには次のリンクをクリックしてください。

http://www.oracle.com/technology/software/products/mapviewer/index.html (英語)

http://otn.oracle.co.jp/products/mapviewer/ (日本語)

Oracle Location Serviceへアクセスできない場合、プレゼンテーション・サービスとルーティング・サービス用のOpenLS SQLデモを実行することはできません。 したがって、以下に説明するinsert into文とassign_acl文の変更を行う必要はありません。

ただし、ディレクトリ・サービスとジオコーディング・サービス用のOpenLS SQLデモは実行できます。

以下の変更を行います。

mdsys.OpenLSServices表に対するINSERT INTO文のサーバーURL定義:

ロケーション・ユーティリティ・サービスおよびディレクトリ・サービスのURLは、http:localhostのままにします。

プレゼンテーション・サービスおよびルーティング・サービスのURLには、正しいRoute ServerとMapViewerのURLを指定します。 したがって、これらの値はOracle Location Serviceにアクセスできる場合のみ変更します。

このチュートリアルでは、dbms_network_acl_admin.drop_acl('xxx.xml')はそのままにします。

アクセス制御リスト(ACL)定義(assign_acl文)におけるURLを、プレゼンテーション・サービスとルーティング・サービスのINSERT INTO文で指定したURLに変更します。 Oracle Location Serviceにアクセスできる場合のみ変更します。

 

3.

SQL*Plusで、olscreate.sqlスクリプトを実行します。

sqlplus / as sysdba
@olscreate.sql

次のスクリーンショットでは、出力の一部のみを示しています。

SQL*Plusを終了します。

 

トピックに戻る

test.javaファイルの更新

1.

$CLIENT_DIR/src/oracle/spatial/ws/svrproxy/Test.javaファイルで、以下の変更を行います。

次の個所で、URL(ローカルホスト、ポート)を変更します。

myPort.setEndpoint("http://localhost:8888/SpatialWS-SpatialWS-context-root/SpatialWSSoapHttpPort");

注:このチュートリアルでは、"localhost:8888"のままにします。

次の個所を編集して、適切なユーザー名とパスワードを指定します。

myPort.setUsername(user);
myPort.setPassword("welcome");

SpatialWsUser0からSpatialWsUser3までのユーザーをすでに作成しているため、これらの変更を加える必要がない場合もあります。 また、一部のテストではパフォーマンス測定のためにループを実行しています。

トピックに戻る

コードのコンパイルと実行

OpenLSベースのデモは、以下のOpenLSリクエスト・タイプの処理を行います。

OpenLSのJavaデモをコンパイルして実行すると、ディレクトリ・サービスのリクエストを実行するSOAP呼び出しが行われ、ディレクトリ・サービスのレスポンスが生成されます。

OpenLSデモを実行するには、以下の手順に従います。

1.

新しい端末ウィンドウで、OC4Jサーバーを開始します。 次のコマンドを入力します。

cd <jdevhome directory>/bin
./oc4j -start
2.

コードをコンパイルして実行します。

サンプルのYPリクエストの場合(Linuxシステム)

cd $CLIENT_HOME/src
./compileAndRunClient.sh runyp 

次のスクリーンショットでは、出力の一部のみを示しています。

 

トピックに戻る

OpenLS SQLデモの実行

OpenLSには、SOAPインタフェース(上述の手順で実行済み)に加えてSQLインタフェースがあります。

入力ファイルは、olsloc_01.sqlolsdir_02.sqlolsdir_03.sqlからolsdir_11.sqlまでのファイルと、olsmap_02.sqlolsmap_03.sql、およびolsroute_01.sqlです。 入力ファイルはwsclient.jarファイルに含まれており、$CLIENT_HOME/src/dataフォルダからアクセスできます。 $CLIENT_HOME/src/dataからSQL*Plusを実行すると、出力ファイルが対応するログ・ファイルとして生成されます(olsloc_01.logolsdir_02.logolsdir_03.logからolsdir_11.logまでのファイルと、olsmap_02.logolsmap_03.logおよびolsroute_01.log)。

以下に、OpenLSリクエスト・タイプ別の入力ファイルと出力ファイルの内容を示します。

olsloc_01.logおよびolsmap_02.logファイルを生成するには、以下の手順に従います。

1.

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

cd $CLIENT_HOME/src/data
sqlplus mdsys/oracle

spool olsloc_01.log
@olsloc_01.sql
spool off

上の表に記載したとおり、olsloc_01.sqlはジオコードを使用して、サンフランシスコにある2つの住所をリクエストする例です。 スプールされた出力ログ・ファイルolsloc_01.logは、$CLIENT_HOME/src/dataディレクトリから参照できます。 次のスクリーンショットでは、出力の一部のみを示しています。

2.

同様に、olsmap_02.sqlを実行します。これは、PortrayMapRequestのリクエスト・タイプ例です。 Oracle Location Serviceにアクセスすることができ、olscreate.sqlスクリプトでURLを指定している場合に限り、これを実行できます。

次のスクリーンショットに、olsmap_02.logファイルの内容を示します。

同様に、olsroute_01.sql(Oracle Location Serviceへアクセスできる場合に限る)やolsdir_03.sqlなど、その他すべての入力SQLファイルを実行して、対応する出力ファイルを生成できます。

 

3.

OC4Jサーバーを停止します。 次のコマンドを入力します。

cd <Jdev directory>\bin
./oc4j -shutdown -port 23791 -password admin

 

トピックに戻る

トピック・リストに戻る

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

Web Feature Service(WFS)デモの実行
Catalog Services for the Web(CSW)デモの実行
Open Location Services(OpenLS)デモの実行

トピック・リストに戻る

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


Copyright (c) Oracle Corporation 2007 All Rights Reserved
Oracle Corporation発行の「Running Oracle Spatial Web Services」の翻訳版です。

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

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