运行 Oracle Spatial Web 服务

本教程将向您介绍如何使用演示文件了解 Oracle Spatial Web 服务,如 Web 地理特征服务 (WFS)、Web 目录服务 (CSW) 和开放式位置服务 (OpenLS)。

大约 30 分钟

本教程包括下列主题:

将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。 (警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。

在教程“在 OC4J 中安装和配置 Spatial Web 服务”中,您已经在 Oracle Application Server Containers for J2EE 中安装并配置了 Spatial Web 服务。在本教程中,您将通过使用提供的演示文件来了解包括 WFS、CSW 和 OpenLS 在内的 Spatial Web 服务。

开始本教程之前,您应该:

完成了教程为 OC4J 安装和配置 Spatial 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 directory as the wfsrel_*.log 文件中生成。

以下屏幕截图显示了部分输出。

返回主题

查看请求和响应 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.xml 直至 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.

然后,按如下所示运行基于文档的 WFS 演示 (java oracle.spatial.ws.svrproxy.TestWFS wfs_doc_user wfs_doc_user) :

cd $CLIENT_DIR/src
./compileAndRunClient.sh runwfsdoc

以下屏幕截图显示了部分输出。

返回主题

查看请求和响应 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.

要删除关系地理特征类型,请输入以下 SQL 脚本:

cd $CLIENT_DIR/src/sql
sqlplus / AS SYSDBA

运行 SQL*Plus 脚本:drprelmd.sql.

@drprelmd.sql

退出 SQL*Plus。

2.

要删除基于文档的地理特征类型,请输入以下 SQL 脚本:

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.log csw_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 示例

输入/输出文件内容按 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”以指定所需的用户名和口令。对于本教程,请将系统和 mdsys 口令更改为 oracle

注:对于表示服务和路由服务,insert(...)assign_acl(...) 语句需要进行更新以指向正确的路由服务器和 MapViewer URL。如果可以访问 Oracle 位置服务,则您可设置并访问这些 URL,然后针对表示服务和路由服务演示运行 OpenLS SQL 演示。Oracle 位置服务将提供处理路由和绘图请求的功能。

有关 Oracle 路由服务器的详细信息,请参阅 Oracle Spatial 开发人员指南中关于路由引擎的章节。有关 Oracle MapViewer 的详细信息,请点击以下链接:

http://www.oracle.com/technology/software/products/mapviewer/index.html

如果不能访问 Oracle 位置服务,则您将无法针对表示服务和路由服务运行 OpenLS SQL 演示。因此您无需更改以下所述的 insert intoassign_acl 语句。

但您仍可以针对目录服务和地理编码服务运行 OpenLS SQL 演示。

更改以下内容:

INSERT INTO(插入)mdsys.OpenLSServices 表的语句中的服务器 URL 定义:

对于位置转换服务 (Location Utility Service) 和目录服务,您可以将 URL 保留为 http:localhost。

对于表示服务和路由服务,URL 应指向正确的路由服务器和 MapViewer URL。因此,仅当您可以访问 Oracle 位置服务时对其进行更改。

dbms_network_acl_admin.drop_acl('xxx.xml') 中,您可以针对本教程保留其原样。

访问控制列表 (ACL) 定义(assign_acl 语句)中的 URL 更改为您在表示服务和路由服务的 INSERT INTO 语句中选定的 URL。仅当您可以访问 Oracle 位置服务时对其进行更改。

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,有一个 SQL 接口和一个 SOAP 接口(已在之前的步骤中进行了演示)。

输入文件是 olsloc_01.sqlolsdir_02.sqlolsdir_03.sql 直至 olsdir_11.sqlolsmap_02.sqlolsmap_03.sqlolsroute_01.sql。输入文件包含在 wsclient.jar 文件中,可从 $CLIENT_HOME/src/data 文件夹中进行访问。可通过从 $CLIENT_HOME/src/data 执行 SQL*Plus 将输出生成为相应的日志文件(olsloc_01.logolsdir_02.logolsdir_03.log 直至 olsdir_11.logolsmap_02.logolsmap_03.logolsroute_01.log)。

输入/输出文件内容按 OpenLS 请求类型描述如下:

要生成 olsloc_01.logolsmap_02.log 文件,执行以下步骤:

1.

输入以下命令:

cd $CLIENT_HOME/src/data
sqlplus mdsys/oracle

spool olsloc_01.log
@olsloc_01.sql
spool off

如上表所述,olsloc_01.sql 是一个从地理代码请求旧金山内两个地址的示例。您可以从 $CLIENT_HOME/src/data 目录查看生成的输出日志文件 olsloc_01.log。以下的屏幕截图只显示了部分输出。

2.

同样,您可以运行 olsmap_02.sql,这是一个 PortrayMapRequest 请求类型的示例。仅当您可以访问 Oracle 位置服务并在 olscreate.sql 脚本中提供了其 URL 后可运行该示例。

以下屏幕截图显示了 olsmap_02.log 文件的内容。

同样,您可以运行所有其他输入 SQL 文件,如 olsroute_01.sql(仅当您可以访问 Oracle 位置服务时)或 olsdir_03.sql 文件并生成相应的输出文件。

3.

停止 OC4J 服务器。输入以下命令:

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

返回主题

返回主题列表

在本教程中,您学习了如何:

运行 Web 地理特征服务 (WFS) 演示
运行 Web 目录服务 (CSW) 演示
运行开放式位置服务 (OpenLS) 演示

返回主题列表

将鼠标移到该图标上可以隐藏所有屏幕截图。