WebService系列:将PL/SQL功能发布为Web Service到OC4J
二月 8, 2009 in Oracle 融合中间件
本文述如何将PL/SQL的功能发布为Web Service的实现步骤:
- 按照业务要求编写PL/SQL功能
- 使用JDeveloper10g工具的PL/SQL Web Service向导创建PL/SQL的Web Service
- 使用JDeveloper10g工具将创建的Web Service发布到OC4J上
- 通过浏览器来测试已发布的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
主要有以下的几个步骤:
- 配置JDeveloper10g连接到数据库(aronehome_conn)
- 配置JDeveloper10g连接到OC4J10g(aronehome_oc4j)
- 创建JDeveloper工作空间和项目(aronehome_workspace, WebService)
- 发布PLSQL功能为Web Service
本文省略前面3个步骤的描述,重点介绍如何发布PLSQL为Web服务
- 切换到Application Navigator下的Applications项,右键选择项目WebService,选择上下文菜单New…
- 选择Business Tier节点下的Web Service,右边选择Items项为:PL/SQL Web Service
- 选择已创建的数据库连接aronehome_conn、数据库包aronehome_demo_ws、Web Service Name为GreetingWords、Java Package为com.aronehome
- 向导步骤2使用默认选项,下一步
- 向导步骤3选择功能get_greeting_words,选择完成创建Web Service
三、发布Web Service到OC4J
创建完Web Service后,在项目的Resource目录下会有一个Web Service发布配置文件WebService.deploy生成。
右键选择WebService.deploy,选择Deploy to下的aronehome_oc4j连接,如图
系统自动弹出Web Service对应的J2EE应用配置,可以进行修改,开始在项目设置的时候已经进行了必要的修改,不需要进一步更改。
点击确定按钮发布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信息
选择应用aronehome下的Web服务标签页,可以看到已经发布的Web Service GreetingWords
四、测试Web Service
测试GreetingWords Web Service可以通过上图左上角的测试服务按钮来启动,也可以通过Web服务对应的端口地址来测试
输入参数值: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
–
相关文章:
- Oracle JDeveloper 11g PLSQL Web Service
- WebService系列:Office VBA调用已安全性认证的Web Service
- WebService系列:Office VBA调用Web Service
- WebService系列:创建PL/SQL复合式数据类型Web Services
- WebService系列:OC4J安全性提供程序
- WebService系列:为WebService添加安全性
- WebService系列:PL/SQL调用Web Service(Web Service Callout)
- 编写Java Web Service Proxy
- 发布PLSQL Web Service到WebLogic
- WebService系列:问题处理(Troubleshooting)
