本教程说明了如何将 Oracle 数据库 10g 设置为现有 Web 服务的使用者。
大约 30 分钟
本教程介绍了以下主题:
| 概述 | ||
| 前提条件 | ||
| 安装 Oracle SQLJ | ||
| 设置环境变量 | ||
| 安装调出实用程序 | ||
| 调用 Web 服务 | ||
| 总结 | ||
将鼠标置此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注意:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。您可以单击单个屏幕截图将其隐藏。
本教程介绍了如何从 Oracle 数据库中调用现有 Web 服务。Web 服务是一种软件,它使用 Web 协议(例如,HTTP)上标准的、基于 XML 的消息处理协议(例如,SOAP)为客户端应用程序提供功能和可用性。
在本教程中,您将学习如何只使用一条 SQL 语句从数据库种调用现有的 Web 服务。无需学习 SOAP、WSDL、UDDI 和 HTTP。如果对数据库的发展角度有意义的话,可以使用大多数 Web 服务。本教程提供关于配置数据库和客户端工具、定位 Web 服务、标识其调用序列以及调用它的完整逐步指南。
典型的公共 Web 服务包括股票报价、天气预报、信用卡报告和认证。
开始本教程之前,您应该:
| 1. |
为了学习本教程,您需要安装 SQLJ。执行以下步骤:
| 1. | 下载并解压缩 Oracle 数据库 10g 客户端 CD。
|
| 2. | 通过 setup.exe 执行该安装程序。
|
| 3. | 在 Welcome 窗口中,单击 Next。
|
| 4. | 对于 Installation Type 选择 Custom,然后单击 Next。
|
| 5. | 确保选择了数据库 Oracle 主目录 (OraDb10g_home1)。然后单击 Next。
|
| 6. | 在 Oracle Client 部分下,选择 Oracle SQLJ 并单击 Next。
|
| 7. | 安装程序将验证您的系统是否满足最低要求。当完成时,单击 Next。
|
| 8. | 查看您的选择,然后单击 Install。
|
| 9. | 将显示进度窗口。
|
| 10. | Oracle SQLJ 已经成功安装。单击 Exit。然后单击 Yes。
|
为了安装 Web 服务调出实用程序并访问 Web 服务,您需要确保 PATH 环境变量设置正确:
| 1. | 选择 Start > Settings > Control Panel.双击 System。
|
| 2. | 单击 Advanced 选项卡。然后单击 Environment Variables。
|
| 3. | 在 System Variables 下,选择 Path,然后单击 Edit。
|
| 4. | 将 <oracle_home>\jdk\bin 添加到该路经并单击 OK three times。
|
要安装 Web 服务调出实用程序,请执行以下步骤:
| 1. |
从您的浏览器,访问以下 URL: http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html
|
| 2. |
向下滚动到标记为 Callout Utility for 10g (R1 + R2) RDBMS 的链接。单击鼠标右键,然后单击 Save Link As。
|
| 3. | 将该文件保存在您的工作目录(例如,c:\wkdir)中,然后单击 Save。
|
| 4. | 在保存该文件的位置双击 dbws-callout-utility-10R2.zip。
|
| 5. | 单击 Extract。
|
| 6. |
将该文件的内容提取到 <database oracle home> 目录。一定要设置 Use folder names 选项。
|
| 7. |
打开一个 DOS 窗口,设置 CLASSPATH 环境变量,使其包括以下内容: %oracle_home%\jdbc\lib\ojdbc14.jar; 您可以使用 set_classpath.bat 文件进行此操作。例如,如果您的 ORACLE_HOME 设置为 c:\oracle\product\10.2.0\db_1,则 set classpath 命令将如下所示: cd c:\oracle\product\10.2.0\db_1 set classpath=.;c:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar;
|
| 8. |
输入以下命令。确保针对 SYS 用户使用了正确的口令。 loadjava -u sys/oracle -r -v -f -s -grant public -genmissing sqlj/lib/dbwsclient.jar
注意没有错误。
|
要调用 Web 服务,请执行以下步骤:
| 1. |
在您的浏览器中,输入以下 URL: http://www.cdyne.com/developers/overview.aspx
|
|
| 2. |
针对 Phone Verifier 服务,单击 Get WSDL 链接。
|
|
| 3. |
注意 URL。它将用在 jpub 命令行中。
|
|
| 4. |
滚到该服务端口地址的位置,注意该 URL。它将用在 jpub 命令行的末尾。
|
|
| 5. |
在 DOS 命令提示符处,输入以下命令。 jpub -user hr/hr -sysuser system/oracle -proxywsdl=http://ws.cdyne.com/phoneverify/phoneverify.asmx?wsdl -proxyopts=tabfun -httpproxy=www-proxy.us.oracle.com:80 -endpoint=http://ws.cdyne.com/phoneverify/phoneverify.asmx -dir=phone
|
|
| 6. |
在 DOS 命令窗口中,执行以下命令: sqlplus /nolog
connect / as sysdba
exec dbms_java.grant_permission('HR','SYS:java.lang.RuntimePermission','setFactory','');
|
|
| 7. |
注意 wsdl 页面中的参数 — 有两个。该站点通知其他进行测试的地方使用“0”作为 LicenseKey。
|
|
| 8. |
要测试该服务,请执行以下命令: connect hr/hr
select jpub_plsql_wrapper.checkphonenumber('6505067000','0') from dual;
|
|
| 9. |
由于您为 jpub 程序提供了 tabfun 选项,因此已经创建了用于调用这些函数的表版本的包装函数。这意味着您发送了一个参数表。 为此创建一个表并使用若干电话号码填充它,方法是在作为 HR 用户登录时执行以下语句: create table phonetab (phone varchar2(10), license varchar2(1) default '0');
|
|
| 10. |
执行以下查询,以查看插入到该表中的所有电话号码的结果: select * from table(jpub_plsql_wrapper.to_table_checkphonenumber
|
|
在本教程中,您学习了如何:
| 安装 Web 服务调出实用程序 | ||
| 使用 SQL 从数据库中调用 Web 服务 | ||