如何部署将 Boolean 输入作为 Web 服务的 PL/SQL函数
日期:2003 年 1 月 2 日
完成了此方法指南后,您应该能够:
- 发布将 Boolean 作为 Web 服务的 PL/SQL 函数
- 使用 Web 服务汇编程序创建 企业应用档案 (EAR) 文件并将其部署到 OC4J
软件要求
符号解释
- <SAMPLE_HOME> — 解压缩 Boolean.jar 文件的目录。此目录包含 Boolean 目录
- <ORACLE_HOME> — 用于安装 Oracle9i 客户机或数据库软件的目录
简介
此文档描述如何发布将 Boolean 输入作为 Web 服务的 PL/SQL 函数。Boolean 不是一个支持的 JDBC 类型。到现在为止,使用 JDBC 从Java 访问 Boolean 类型还不可能。所以需要将 Boolean 映射为 JDBC 所熟悉的另一 SQL 类型。JDBC 和 PL/SQL对整数类型都熟悉,并且还是 Web 服务框架所支持的类型。这种转换实际上已在 Jpublisher(仅需保证 SQL 文件 <ORACLE_HOME>/sqlj/lib/sqljutl.sql 确实已被安装到了数据库中)中进行了预编程。此操作有助于避免将 Boolean 映射为整数而创建 2 个函数,反之亦然。
我们现在要为该演示文稿创建的 Web 服务是一个简单的员工税款计算器。在此,我们使用随 Oracle 9i 数据库一起提供的示例模式的 HR/HR 用户中的 EMPLOYEES 表。我们假设的情形是,税款对于单身员工(30%)和已婚员工(20%)是不相同的。创建的 PL/SQL 过程是这样的,员工的 ID 和 Boolean(Boolean 用来指定该员工是否已婚)被输入后,该过程将返回计算后的税款。该过程作为 Web 服务发布。
提取源代码
应用程序文件被存储在名为 Boolean.jar 的档案中。下载该档案,并将它解压缩到方便的目录中 ( <SAMPLE_HOME>)。执行以下命令,解压缩文件:
>jar xvf Boolean.jar
此操作将创建 ‘Boolean’ 目录并解压缩以下文件和目录:
-
config/:包含配置文件。
-
- CreateProcedure.sql:用来创建 PL/SQL 函数的 sql 脚本
- config.xml:包含 Web 服务汇编程序输入的 XML 文件
作为 Web 服务部署 PL/SQL 函数的步骤
以下是作为 Web 服务发布 PL/SQL 函数所需的步骤顺序。
1.
|
通过执行位于目录 <SAMPLE_HOME>/Boolean/config 中的文件 CreateProcedure.sql 创建 PL/SQL 函数。
要执行脚本 CreateProcedure.sql,需按 hr/hr 连接到您的数据库,并根据 SQL 提示符运行以下命令
SQL>@ <SAMPLE_HOME>\Boolean\config\CreateProcedure.sql
此操作将创建一个带有函数 getTax 的新程序包 EMPTAX。
|
2.
|
现在,您可以使用 Web 服务汇编程序创建可部署的 Web Service EAR 文件。 WebServicesAssembler.jar 位于 \webservices\lib 中
您需要通过配置文件 config.xml 提供对 WebServicesAssembler.jar 的输入。示例 config.xml 位于 <SAMPLE_HOME>\Boolean\config.xml 中。您可以将此 config.xml 复制到 \webservices\lib 中。
config.xml 包含关于数据库用户名\口令数据库 URL、实现 webservice 的程序包等方面的信息。
hr/hr jdbc:oracle:thin:@:: EmpTax
确保将数据库的 URL 更改为您在其中创建了 PL/SQL 函数的那一个。仅在创建程序包时才使用此信息。此应用程序运行时,它需要一个连接到数据库的 JNDI 数据源。 config.xml 文件可提供 JNDI 数据源,具体情况如下。
jdbc/ora9idb
确保将数据源的名称更改为可连接到示例模式的 HR 用户中的 EMPTAX 程序包的那一个。如果此数据源不存在,则您可以通过在 \j2ee\home\config\data-sources.xml 中创建以下条目提供新的数据源名称。
class="oracle.jdbc.pool.OracleDataSource" name="ora9idb" location="jdbc/ora9idb" xa-location="jdbc/xa/ora9idbXADS" ejb-location="jdbc/ora9idb" connection-driver="oracle.jdbc.driver.OracleDriver" username="hr" password="hr" url="jdbc:oracle:thin:@::" inactivity-timeout="30" />
注意:要为主机名、端口和 SID 添加有效值
|
3.
|
现在给出以下命令以在 \webservices\lib 中生成 EAR 文件
>java -jar WebServicesAssembler.jar -config config.xml
此操作可创建 EmpTax.ear 文件。
|
| 4.
|
将上面创建的 ear 文件复制到:\j2ee\home\applications 目录。
|
5.
|
启动 OC4J 服务器。为此,请转到 \j2ee\home 文件夹并键入以下内容
>java -jar oc4j.jar
|
6.
|
使用以下命令从 \j2ee\home 部署 EAR
>java -jar admin.jar ormi://: admin -deploy -file \webservices\lib\EmpTax.ear -deploymentName EmpTax
这将使用名称 “EmpTax” 部署该应用程序
现在,使用以下命令将该 Web 应用程序绑定到网站,
>java -jar admin.jar ormi://: admin -bindWebApp EmpTax EmpTax_web http-web-site /Boolean
其中:
| http-web-site
|
绑定 Web 应用程序的网站 |
| server
|
该站点的主机/ IP
|
| rmi-port
|
该站点的 RMI 端口
|
| password
|
OC4J 服务器的管理员口令 |
|
7.
|
您可以通过打开浏览器并转到以下 URL 查看 Web 服务的工作情况
http://:/Boolean/EmpTax
您将看到您的 Web 服务操作列表,并可通过您的浏览器分别测试这些操作。
Web 服务的终点是
http://:/Boolean/EmpTax?WSDL
其中:
| server
|
该站点的主机/IP
|
| http-port
|
该站点的 Http 端口
|
|
总结
通过本文档的学习,您应该知道如何使用 Web 服务汇编程序部署将 Boolean 输入作为 Web 服务的 PLSQL 函数。
参考
1. 有关如何使用 JDeveloper 作为 Web 服务部署 PLSQL 函数的信息,请参见/global/cn/tech/webservices/index.html
2. 有关 Oracle9i 数据库和 Web 服务的信息,请参见/global/cn/tech/webservices/index.html
|