发布PLSQL Web Service到WebLogic
十月 14, 2008 in Oracle 融合中间件
?
将Web Service发布到WebLogic,需要做如下的几个步骤:
- 设置WAR发布配置信息
- WebLogic服务器端创建JDBC设置
- 发布Web Service到WebLogic
- 测试Web Service
?
一、设置Web Service的WAR发布信息
?
路径:Project Properties –> Deployment –> Edit
?
WAR 发布配置文件设置中设置:WAR文件名、EAR文件名、Enterprise Application Name;还有需要发布的WSDL、Class文件等等
?
?
二、WebLogic服务器端定义JDBC设置
?
由于我们开发的PL/SQL Web Service 调用了数据库的资源,需要连接数据库,因此发布到应用服务器之前需要在应用服务器上面创建JDBC连接资源。
而在JDeveloper 11g中,JDBC连接的名称是根据我们定义的数据库连接的名称自动生成的,如下:
?
?
选择项目中Web Content –> WEB-INF –> wsdl –> web.xml,可以从结构窗体中看到resource-ref 这个子元素,
它的值便是根据数据库连接名称自动添加DS生成的,当然开发人员也可以修改它。
将Web Service发布到应用服务器Weblogic的时候,web应用会去读取JNDI为:jdbc/ebs12testDS 的JDBC数据源,因此在发布到
服务器之前应该先定义它
?
- 启动WebLogic的服务,登录管理控制台: http://localhost:7001/console
- 选择“域配置”部分下的JDBC数据源
- 根据向导创建JDBC连接,其中需要注意的是JNDI的名称定义,必须是:jdbc/<datasource_name>
?
?
三、发布Web Service
?
JDeveloper 11g 中,发布Web Serivice的方式和之前的版本有所区别,以前是在WEB-INF/Resources目录下会生成一个Webservice.deploy的发布配置文件,而现在是通过以下的路径来发布:
右键选择Web Service所在的项目,Deploy—>WebServices—>to
to后面会列出JDeveloper中已定义的应用服务器连接名称(相关设置请查看)
?
发布成功之后,可以在JDeveloper 的 Log Window中看到如下的日志信息:
—- Deployment started. —- Oct 13, 2008 9:01:03 PM Target platform is (Weblogic 10.3). Running dependency analysis… Building… 2008-10-13 21:01:03.708: Writing WAR file to C:\Users\Arone.Zhang\Study\Oracle\jdveloper1111\OracleSeeker\PlsqlWebService\deploy\oracleseeker.war 2008-10-13 21:01:03.713: Wrote WAR file to C:\Users\Arone.Zhang\Study\Oracle\jdveloper1111\OracleSeeker\PlsqlWebService\deploy\oracleseeker.war Deploying Application… Application Deployed Successfully. Elapsed time for deployment: 1 second —- Deployment finished. —- Oct 13, 2008 9:01:04 PM
?
?
四、测试Web Service
?
发布完成之后可以登录WebLogic的管理控制台查看对应的应用和Web Service的情况:
?
?
可以查看我们Web Service的WSDL描述信息:
<?xml version=’1.0′ encoding=’UTF-8′?>
?
可以点击“测试客户端”来进行测试
?
?
可以从图示中看出输入参数:Arone,Zhang ;结果返回:Hello Arone,Zhang,2008-10-13。
也可以看到我们的Web Service的地址为:http://10.214.242.204:7001/oracleseeker/GreatingWordsSoapHttpPort
我们可以直接在浏览器中输入这个地址进行测试。
?
至此我们的一个Web Service已经发布到了应用服务器,任何应用程序都可以通过http协议来调用我们的服务。
后续我们将编写Web Service Proxy来调用它。
?
–