WebService系列:将PL/SQL功能发布为Web Service到OC4J

二月 8, 2009 in Oracle 融合中间件

 

本文述如何将PL/SQL的功能发布为Web Service的实现步骤:

  1. 按照业务要求编写PL/SQL功能
  2. 使用JDeveloper10g工具的PL/SQL Web Service向导创建PL/SQL的Web Service
  3. 使用JDeveloper10g工具将创建的Web Service发布到OC4J上
  4. 通过浏览器来测试已发布的Web Service

 

开发工具:JDeveloper10.1.3.3.0

Web Service发布环境:OC4J10.1.3.3.0

 

一、编写PL/SQL代码

 

需要发布为Web Service的PL/SQL功能和我们平时所编写的PL/SQL功能没有什么区别,因此直接提供一段PL/SQL的实现代码,方便后面的说明。

下面创建一个存储函数来根据传入用户名来返回欢迎词,欢迎词中除了包括欢迎用户还包括当前日期

下面是PLSQL的定义和实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE OR REPLACE PACKAGE oracleseeker_demo_ws IS
  FUNCTION get_greeting_words(p_user_name VARCHAR2) RETURN VARCHAR2;
END oracleseeker_demo_ws;
 
CREATE OR REPLACE PACKAGE BODY oracleseeker_demo_ws IS 
  FUNCTION get_greeting_words(p_user_name VARCHAR2) RETURN VARCHAR2 IS
    l_time VARCHAR2(20); 
  BEGIN 
    SELECT to_char(SYSDATE, 'YYYY-MM-DD') INTO l_time FROM dual; 
    RETURN 'Hello ' || p_user_name || ', ' || l_time; 
  EXCEPTION
    WHEN OTHERS THEN
    RETURN 'error'; 
  END; 
END oracleseeker_demo_ws;

此存储功能输出的一个测试结果如下:

Hello aronehome, 2009-02-08

 

二、转换PL/SQL功能为Web Service

 

主要有以下的几个步骤:

  1. 配置JDeveloper10g连接到数据库(aronehome_conn)
  2. 配置JDeveloper10g连接到OC4J10g(aronehome_oc4j)
  3. 创建JDeveloper工作空间和项目(aronehome_workspace, WebService)
  4. 发布PLSQL功能为Web Service

 

本文省略前面3个步骤的描述,重点介绍如何发布PLSQL为Web服务

  1. 切换到Application Navigator下的Applications项,右键选择项目WebService,选择上下文菜单New…
  2. 选择Business Tier节点下的Web Service,右边选择Items项为:PL/SQL Web Service
  3. 选择已创建的数据库连接aronehome_conn、数据库包aronehome_demo_ws、Web Service Name为GreetingWords、Java Package为com.aronehome
  4. 向导步骤2使用默认选项,下一步
  5. 向导步骤3选择功能get_greeting_words,选择完成创建Web Service

 

plsql_ws_wizard1

 

plsql_ws_wizard2_webservice_version

 

plsql_ws_wizard3_select_database

 

plsql_ws_wizard4_message_format

 

plsql_ws_wizard5_program_units

 

 

三、发布Web Service到OC4J

 

创建完Web Service后,在项目的Resource目录下会有一个Web Service发布配置文件WebService.deploy生成。
右键选择WebService.deploy,选择Deploy to下的aronehome_oc4j连接,如图

plsq_ws_deploy_ws_5

系统自动弹出Web Service对应的J2EE应用配置,可以进行修改,开始在项目设置的时候已经进行了必要的修改,不需要进一步更改。

7.deploy_ws_configure

 

点击确定按钮发布Web Service到指定的OC4J应用下。同时会有发布日志查看发布情况: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
----  Deployment started.  ----    2009-2-8 4:55:23
Target platform is 独立 OC4J 10g 10.1.3 (aronehome_oc4j).
Wrote WAR file to D:\Arone.Zhang\Respository\Blog\series\WebService\aronehome_workspace\WebService\deploy\WebServices.war
Wrote EAR file to D:\Arone.Zhang\Respository\Blog\series\WebService\aronehome_workspace\WebService\deploy\aronehome_workspace-WebService-WS.ear
正在上载文件 aronehome.ear...
aronehome 的 Application Deployer 开始。
将档案复制到 D:\oc4j_extended_101330\j2ee\home\applications\aronehome.ear
初始化 D:\oc4j_extended_101330\j2ee\home\applications\aronehome.ear 开始...
解压缩 aronehome.ear
解压缩 aronehome.ear 完成
解压缩 WebServices.war
解压缩 WebServices.war 完成
初始化 D:\oc4j_extended_101330\j2ee\home\applications\aronehome.ear 结束...
启动应用程序: aronehome
初始化类加载程序
初始化 EJB 容器
加载连接器
启动资源适配器
初始化 EJB 会话
提交类加载程序
初始化 WebServices 开始...
初始化 WebServices 结束...
已启动的应用程序: aronehome
将 Web 应用程序绑定到站点 default-web-site 开始...
将应用程序 aronehome 的 WebServices Web 模块绑定到上下文根 aronehome 下的站点 default-web-site
初始化 Web 应用程序 WebServices 的 Servlet oracle.j2ee.ws.server.JAXRPCServlet
将 Web 应用程序绑定到站点 default-web-site 结束...
aronehome 的 Application Deployer 完成。操作时间: 5323 msecs
Elapsed time for deployment:  57 seconds
----  Deployment finished.  ----    2009-2-8 4:56:20

登陆OC4J,查看Web Service信息

http://localhost:8888/em

选择应用aronehome下的Web服务标签页,可以看到已经发布的Web Service GreetingWords

8.ws_HttpPort

 

四、测试Web Service

 

测试GreetingWords Web Service可以通过上图左上角的测试服务按钮来启动,也可以通过Web服务对应的端口地址来测试

9.ws_test_url

 

10.ws_test_page

 

输入参数值:Arone.Zhang

点击Invoke按钮运行Web Service。

运行的结果如下:

1
2
3
4
 
 
 
			Hello Arone.Zhang, 2009-02-08

可以看到Web Service返回的结构值为:Hello Arone.Zhang, 2009-02-08

同样可以直接在浏览器中输入Web 服务对应的端口地址来测试Web Service:

http://aronezhang:8888/aronehome/GreetingWordsSoapHttpPort

 

相关源代码:Download Oracle EBS二次开发系列视频教程之打开Form模板源代码文件(3) Version 1

 

 

 

相关文章:

  1. Oracle JDeveloper 11g PLSQL Web Service
  2. WebService系列:Office VBA调用已安全性认证的Web Service
  3. WebService系列:Office VBA调用Web Service
  4. WebService系列:创建PL/SQL复合式数据类型Web Services
  5. WebService系列:OC4J安全性提供程序
  6. WebService系列:为WebService添加安全性
  7. WebService系列:PL/SQL调用Web Service(Web Service Callout)
  8. 编写Java Web Service Proxy
  9. 发布PLSQL Web Service到WebLogic
  10. WebService系列:问题处理(Troubleshooting)

Leave a reply

You must be logged in to post a comment.