在本教程中,您将从 PL/SQL 程序包开发一个 Web 服务。而后将该 web 服务部署到 OC4J 并进行测试。
所需时间
大约 30 分钟
本教程包括下列主题:
概述 | |
情景 | |
前提条件 | |
创建数据库连接 | |
在数据库中安装 PL/SQL 程序包 | |
将 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 的连接:
|
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 页面上,连接的默认值应如下所示:
单击 Next 继续。 |
7. |
单击 Test Connection。 如果数据库可用且连接的详细信息正确,您将看到 Status 窗口中显示 Success!。 如果发生错误,则确认这些设置是否正确。单击 Back 进行任何必要的更改,然后重新测试该连接。 如果连接成功,则单击 Finish 完成该连接。
|
您刚创建了一个到数据库的连接。在下一主题中,您需要在该数据库中安装 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 服务。
要创建应用程序和项目,请执行以下步骤:
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 服务,请执行以下步骤:
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 服务的迷人之处在您可以抽象化服务的底层实现。 |
1. |
在 Applications Navigator 中展开
Resources 节点。右键单击
WebServices.deploy,并从上下文菜单中选择
Deploy to >
oc4jconn。
在 Configure Application 对话框中,单击 OK。 日志窗口将显示部署成功。
|
2. |
打开浏览器并粘贴您从上面的 WSDL 文件(它是 OC4J 生成的 EmpWebService 端点页面)中复制的 URL。 EmpWebService 的终端页面将显示。注意 getEmp 操作。
|
3. |
该页面将显示一个可以指定操作参数的区域。在提供的方框中输入 100,以返回 Id 为 100 的员工的记录,单击 Invoke。
|
4. |
调用 web 服务后,窗口将显示 SOAP 信封,其中包含测试结果,即员工编号为 100 的 King(机构总裁)的记录。
|
5. |
用不同的值重新测试 getEm 方法:
|
在本教程中,您使用 JDeveloper 从 PL/SQL 程序包创建了一个 web 服务。然后将该 web 服务部署到了 OC4J 并在浏览器中进行了测试。
要了解有关如何使用 Web 服务的更多信息,请参考:
OTN 网站上的 面向服务体系结构技术中心 | ||
OTN 上的 Web 服务管理 | ||
OTN 上的 Web 服务论坛 | ||
OTN 上的 使用 JDeveloper 和 WS-Security 保护 Web 服务 |
热门下载 | ||
更多融合中间件下载 | ||