JDeveloper 提供了许多特性来帮助您创建和部署 web 服务,并找到现有的 web 服务,以在您的应用程序中使用。本教程将指导您根据现有 PL/SQL 程序包创建和部署 Web 服务。将创建的 web 服务部署到 OC4J 并进行测试以保证其功能正常。
| 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 应如下所示:
|
| 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。 (注:这假定您已经启动了 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
|