如何部署将 Boolean 输入作为 Web 服务的 PL/SQL函数

日期:2003 年 1 月 2 日

完成了此方法指南后,您应该能够:

  • 发布将 Boolean 作为 Web 服务的 PL/SQL 函数
  • 使用 Web 服务汇编程序创建 企业应用档案 (EAR) 文件并将其部署到 OC4J

软件要求

  • 已安装示例模式的 Oracle9i Database 版本 9.0.1 或更高版本。您可从 Oracle 技术网下载 Oracle9i Database。

  • Oracle9iAS Containers for J2EE (OC4J)、9.0.3 版或更高版本(可从这里得到)及 JDK 1.2 版或更高版本(可从这里得到)

  • Sun 的 JDK 1.3_01 版或更高版本,可从这里得到

符号解释

  • <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 文件
  • doc/

    • boolean.html仅包含此文档。

作为 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


寄送此页面
Printer View 打印机视图