从 PL/SQL 程序包开发 Web 服务

目的

在本教程中,您将从 PL/SQL 程序包开发一个 Web 服务。而后将该 web 服务部署到 OC4J 并进行测试。

所需时间

大约 30 分钟

主题

本教程包括下列主题:

 概述
 情景
 前提条件
 创建数据库连接
 在数据库中安装 PL/SQL 程序包

为 Web 服务创建新应用程序

 将 PL/SQL 程序包发布为 Web 服务
 部署并测试 Web 服务
 总结
 相关信息

查看屏幕截图

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

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

概述

Web 服务是可以合并到应用程序中的分散的可重用软件组件。它们构建于现有的 XML 和 HTTP 协议之上,并遵循以下标准:

 WSDL(Web 服务描述语言):一种用于定义 Web 服务的基于 XML 的语言
 SOAP(简单对象访问协议):一种基于 XML 的协议,用于使用 XML 语法通过 HTTP 发送命令来访问 Web 上的服务
 UDDI(通用描述、发现与集成):Web 服务的通用目录,使软件可以发现 Web 上的服务并与其集成

JDeveloper 提供了许多特性来帮助您创建和部署 web 服务,并找到现有的 web 服务,以在您的应用程序中使用。本教程将指导您根据现有 PL/SQL 程序包创建和部署 Web 服务。将创建的 web 服务部署到 OC4J 并进行测试以保证其功能正常。

返回主题列表

情景

您要使用 JDeveloper 将现在存在 PL/SQL 程序包内的功能公布为 web 服务。

返回主题列表

前提条件

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

1.

可以访问或已经安装了 Oracle JDeveloper (10.1.3.1.0)。您可以从 OTN下载。

2.

已通过双击 <<em>jdev_install>\jdeveloper.exe 启动了 JDeveloper。

如果您收到一条消息,询问您是否想从一个早期版本进行移植,单击 No

3.

可以访问或已经安装了 Oracle 数据库 10g 随附的 Oracle 示例模式。

本教程使用 HR 模式。具体来说,页面使用了 EMPLOYEES 表。HR 模式安装说明:

http://www.oracle.com/technology/obe/obe10131jdev/common/OBEConnection.htm


4.

已将下列 文件复制到了本地 temp 目录。


5.

已通过双击 <<em>jdev_install>\jdev\bin\start_oc4j.bat 启动了 Oracle Application Server Containers for J2EE (OC4J)。

如果提示您输入口令,则输入 welcome1。在您输入口令时不显示任何内容。您必须在下一行重新输入该口令进行确认。如果没有要求您输入口令,那么在稍后的步骤中,您需要知道在 OC4J 最初启动时设置的口令。

观察命令窗口中的结果,直到您看到消息“Oracle Containers for J2EE 10g (10.1.3.1.0) initialized”。然后您可以最小化窗口,但不要关闭它。


6.

已在 JDeveloper 中创建了一个到 OC4J 的连接:

  • 单击 Connections 选项卡(如果 Connections 选项卡不可见,则从菜单中选择 View > Connection Navigator)。
  • 右键单击 Application Server 节点,并从上下文菜单中选择 New Application Server Connection
  • 如果显示 Create Application Server Connection 向导的 Welcome 页面,则单击 Next
  • 在此向导的 Type 页面上,输入连接名称 oc4jconn,然后单击 Next
  • 在向导的 Authentication 页面上,输入口令 welcome1(或最初启动 OC4J 时使用的任何口令)并选择 Deploy Password,然后单击 Next
  • 在向导的 Connection 页面上,单击 Next
  • 在向导的 Test 页面上,单击 Test Connection。在测试之后,Status 消息应显示 Success!。(如果显示了错误消息,则单击 Back,并更正您输入的连接信息。 )
  • 单击 Finish

返回主题列表

创建数据库连接

Java 数据库连接 (JDBC) 是用来将 Java 应用程序与关系数据库相连的一种标准应用程序编程接口 (API)。JDeveloper 的 Connection Navigator 保留了您的应用程序的连接信息。

要创建到 HR 模式的 JDBC 连接,请执行以下步骤:

1.

单击 Application Navigator 上的 Connections 选项卡。如果未显示 Connections 选项卡,则从 JDeveloper 主菜单中选择 View | Connection Navigator

2.

右键单击 Database 节点,从上下文菜单中选择 New Database Connection


3.

在 Create Database Connection 向导中,查看 Welcome 页面上的信息,然后单击 Next

4.

在 Connection Name 域中,输入 hrconn 。单击 Next 继续。

5.

在 Authentication 页面上:在 Username 域中输入 hr ,并在 Password 域中输入 hr 。勾选 Deploy Password

单击 Next 继续。

6.

在 Connections 页面上,连接的默认值应如下所示:

Driver: Thin

Host name: localhost

JDBC Port: 1521

SID锛 ORCL

保留这些域的默认值。

单击 Next 继续。

7.

单击 Test Connection

如果数据库可用且连接的详细信息正确,您将看到 Status 窗口中显示 Success!

如果发生错误,则确认这些设置是否正确。单击 Back 进行任何必要的更改,然后重新测试该连接。

如果连接成功,则单击 Finish 完成该连接。

您刚创建了一个到数据库的连接。在下一主题中,您需要在该数据库中安装 PL/SQL 程序包。

在数据库中安装 PL/SQL 程序包

您应该已将 EMP_PACKAGE.sql 复制到了临时目录,如前提要求中所述。如没有完成这一步,请在 此处查找文件。

要在 HR 模式中安装 PL/SQL 程序包,请执行以下步骤:

1.

在 Connections Navigator 中展开 Database 节点(如未展开), 右键单击刚创建的 hrconn 连接。从上下文菜单中选择 SQL*Plus

2.

在提示时输入 hr 作为口令。按 Enter


3.

运行下载到 temp 目录的 EMP_PACKAGE.sq l 文件。

程序包已在数据库中创建。

4.

在 Connections Navigator 中,展开 hrconn 节点和 HR 模式节点。向下滚动至 Packages 节点并将其展开。您应该可以看到刚安装的程序包。

返回主题列表

为 Web 服务创建新应用程序

您需要创建一个应用程序和一个项目来保存将要创建的 web 服务。

要创建应用程序和项目,请执行以下步骤:

1.

在 Applications Navigator 中,右键单击 Applications 节点,然后从上下文菜单中选择 New Application

2.

在 Create Application 对话框中,输入 PL_SQL_WS 作为 Application Name。

在 Application Template 域确保选中 No Template [All Technologies]

单击 OK


3.

在 Create Project 对话框,输入 GetEmployee 作为 Project Name,单击 OK

4.

Applications Navigator 应如下所示:

返回主题列表

将 PL/SQL 程序包发布为 Web 服务

要从 PL/SQL 程序包创建 Web 服务,请执行以下步骤:

1.

在 Connections Navigator 中,展开 EMP_FETCHER 程序包节点,右键单击 EMP_FETCHER。这是程序包的头部分。从上下文菜单中选择 Open

2.

Code Editor 打开并显示程序包头的代码。代码显示 PL/SQL 程序包获取了一个员工号的输入值后返回员工记录。

3.

在 Connections Navigator 中,右键单击 EMP_FETCHER > EMP_FETCHER 节点并选择 Publish as Web Service 选项。

4.

在 Select J2EE Web Service Version 中,选择 J2EE 1.4 (JAX-RPC) 并单击 OK

5.

在 Create PL/SQL J2EE Web Service 页面的 Welcome 页上单击 Next

6.

在向导的第 1 步,确保在 Target Project 列表中选中了 GetEmployee.jpr 项目,然后单击 Next

注意 JDeveloper 默认名称为您当前所在项目的名称。

7.

在第 2 步中,将 Web Service Name 设为 EmpWebService 并确定选中 SOAP 1.1.Binding 选项。单击 Next

8.

在第 3 步中单击 Next 接受默认选项。

9.

在第 4 步中,选择要发布为 web 服务的 GET_EMP 函数。单击 Next

10.

在第 5 步中单击 Next 接受默认类型映射。

11.

在第 6 步中单击 Next,因为对于该 web 服务无需任何用户定义的类型映射。

12.

在第 7 步中单击 Next 接受默认值然后单击 Finish

13.

创建 web 服务 EmpWebService,在 Design Editor 中打开 EmpWebService .wsdl 文件。

14.

在 Applications Navigator 中单击 EmpWebService 节点,打开 Structure 窗格显示为 Web 服务生成的元素。

EmpWebServiceBase.java 类具有所有的数据库连接参数。Web Services 生成器使用 JPublisher 生成 Web 服务。

15.

回到 Design Editor 中的 WSDL 并展开一些节点,以查看公开为 web 服务的程序包的详细信息。

在图的 Bindings 部分,尝试单击输入和输出项。

WebServices 引擎了解如何从 wsdl 描述调用程序包和方法。

双击 WSDL Design Editor 的 EmpWebService 选项卡以将设计窗格缩小为先前的大小。

16.

单击 WSDL 底端的 Source 选项卡,然后下滚到 soap:address location 选项卡。其应类似于 http:///PL_SQL_WS-GetEmployee-context-root/EmpWebServiceSoapHttpPort。将该 URL 复制到剪贴板,以供下一主题使用。

此时,已经生成了 wsdl。底层实现是 PL/SQL 程序包还是 Java 类无关紧要。Web 服务的迷人之处在您可以抽象化服务的底层实现。

返回主题列表

部署并测试 Web 服务

要部署和测试您创建的 web 服务 ,执行以下步骤:

1.

在 Applications Navigator 中展开 Resources 节点。右键单击 WebServices.deploy,并从上下文菜单中选择 Deploy to > oc4jconn
( 注:这假定您已经启动了 OC4J,并已经创建了一条到它的连接 — 如 前提条件中所说明的那样。)

在 Configure Application 对话框中,单击 OK

日志窗口将显示部署成功。

2.

打开浏览器并粘贴您从上面的 WSDL 文件(它是 OC4J 生成的 EmpWebService 端点页面)中复制的 URL。

EmpWebService 的终端页面将显示。注意 getEmp 操作。


3.

该页面将显示一个可以指定操作参数的区域。在提供的方框中输入 100,以返回 Id 为 100 的员工的记录,单击 Invoke

4.

调用 web 服务后,窗口将显示 SOAP 信封,其中包含测试结果,即员工编号为 100 的 King(机构总裁)的记录。

5.

用不同的值重新测试 getEm 方法:

  • 单击 Back 返回 getEmp 页面。
  • 在参数值域输入 120 将返回一个不同的员工。
  • 单击 Invoke
  • Test Result 页面将显示 ID 为 120 的员工记录,其姓为 Weiss

总结

在本教程中,您使用 JDeveloper 从 PL/SQL 程序包创建了一个 web 服务。然后将该 web 服务部署到了 OC4J 并在浏览器中进行了测试。

相关信息

要了解有关如何使用 Web 服务的更多信息,请参考:

 OTN 网站上的 面向服务体系结构技术中心
 OTN 上的 Web 服务管理
 OTN 上的 Web 服务论坛
 OTN 上的 使用 JDeveloper 和 WS-Security 保护 Web 服务

 将鼠标置于该图标上可以隐藏所有的屏幕截图。

Left Curve
热门下载
Right Curve
Left Curve
更多融合中间件下载
Right Curve