You are browsing the archive for 2008 十月.

发布PLSQL Web Service到WebLogic

十月 14, 2008 in Oracle 融合中间件

?

将Web Service发布到WebLogic,需要做如下的几个步骤:

  1. 设置WAR发布配置信息
  2. WebLogic服务器端创建JDBC设置
  3. 发布Web Service到WebLogic
  4. 测试Web Service

?

一、设置Web Service的WAR发布信息

?

路径:Project Properties –> Deployment –> Edit

13.0.edit_project_properties

?

WAR 发布配置文件设置中设置:WAR文件名、EAR文件名、Enterprise Application Name;还有需要发布的WSDL、Class文件等等

13.edit_war_deployment_profile

?

?

二、WebLogic服务器端定义JDBC设置

?

由于我们开发的PL/SQL Web Service 调用了数据库的资源,需要连接数据库,因此发布到应用服务器之前需要在应用服务器上面创建JDBC连接资源。

而在JDeveloper 11g中,JDBC连接的名称是根据我们定义的数据库连接的名称自动生成的,如下:

?

14.jdbc_name

?

选择项目中Web Content –> WEB-INF –> wsdl –> web.xml,可以从结构窗体中看到resource-ref 这个子元素,

它的值便是根据数据库连接名称自动添加DS生成的,当然开发人员也可以修改它。

将Web Service发布到应用服务器Weblogic的时候,web应用会去读取JNDI为:jdbc/ebs12testDS 的JDBC数据源,因此在发布到

服务器之前应该先定义它

?

  1. 启动WebLogic的服务,登录管理控制台: http://localhost:7001/console
  2. 选择“域配置”部分下的JDBC数据源
  3. 根据向导创建JDBC连接,其中需要注意的是JNDI的名称定义,必须是:jdbc/<datasource_name>

15.wl_jdbc_define??

?

?

三、发布Web Service

?

JDeveloper 11g 中,发布Web Serivice的方式和之前的版本有所区别,以前是在WEB-INF/Resources目录下会生成一个Webservice.deploy的发布配置文件,而现在是通过以下的路径来发布:

右键选择Web Service所在的项目,Deploy—>WebServices—>to

to后面会列出JDeveloper中已定义的应用服务器连接名称(相关设置请查看)

12.deploy_path

?

发布成功之后,可以在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的情况:

?

17.wl_webservice_setup

?

可以查看我们Web Service的WSDL描述信息:

<?xml version=’1.0′ encoding=’UTF-8′?>

?

可以点击“测试客户端”来进行测试

?

18.wl_test_webservice

?

可以从图示中看出输入参数:Arone,Zhang ;结果返回:Hello Arone,Zhang,2008-10-13。

也可以看到我们的Web Service的地址为:http://10.214.242.204:7001/oracleseeker/GreatingWordsSoapHttpPort

我们可以直接在浏览器中输入这个地址进行测试。

?

至此我们的一个Web Service已经发布到了应用服务器,任何应用程序都可以通过http协议来调用我们的服务。

后续我们将编写Web Service Proxy来调用它。

?

Oracle JDeveloper 11g PLSQL Web Service

十月 13, 2008 in Oracle 融合中间件

 

 

本文介绍使用Oracle JDeveloper 11g来创建PLSQL类型的Web Serivice,如果还没有安装JDeveloper和配置WebLogic连接,请先阅读:

  1. 安装 Oracle JDeveloper 11g
  2. 配置Oracle JDeveloper 11g连接WebLogic 10.3

 

Oracle JDeveloper 11g的新建分类Web Services下已经没有以前版本的PL/SQL Webservice 项了,
初看还以为它不支持PL/SQL创建Web Service了,实际上可以通过其他方式来创建Web服务

 

no_plsql_ws

 

 

其实可以通过数据库导航窗口,找到自己的数据库包,然后将其发布为Web Service,如下图:

publish_ws_explorer

 

下面是创建一个PLSQL Web Service的步骤和展示

 

 

一、编写PLSQL过程实现功能

 

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

下面是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 Arone.Zhang, 2008-10-12

 

 

二、转换PLSQL为Web Service

 

将PLSQL的存储功能转换为Web Service,需要进行如下几个主要的步骤:

  1. 定义Oracle JDeveloper 11g连接到数据库
  2. 选择Web Service的发布平台
  3. 设置Web Service Java类的包结构和Web Service的名称
  4. 设置Web Service 的SOAP消息格式为:RPC/Encoded
  5. 选择数据库包中的需要发布的存储函数

 

database_connection

 

 

Web Service的发布平台同一个Project只有第一次创建Web Service的时候才需要选择,之后再创建Web Service的时候就不会再出现了

 

1.create_ws_platform

 

 

下图需要指定Web Service的名称,还有Java包的结构

2.create_ws_package

 

为了后续Web Service Proxy Client的研究,我们选择SOAP 消息格式选择为:RPC/Encoded

3.create_ws_msg_format

 

 

此步骤会显示出数据库包下所有的存储过程和存储功能,选择需要发布的过程和功能

4.create_ws_select_function

 

 

完成Web Service创建之后,可以通过以下的WSDL编辑器来修改和设置相关的属性

5.create_ws_wsdl

 

 

三、测试Web Service

 

通过上面的步骤创建Web Service之后,下面通过JDeveloper的内部工具测试Web Service

 

右键选择Web Service,选择菜单项:Test Web Service

7.test_ws

 

从左边的Request窗口中输入参数的值,点击 Send Request 按钮提交请求

8.test_ws_request

 

Web Service调用之后右边的Response窗口中会显示出调用的结果,如下图:

9.test_ws_response

 

除了看到Web Service的调用结果,JDeveloper也提供了HTTP Analyzer这样的HTTP请求和回应数据分析工具。

 

 

测试结束,后面将其发布到WebLogic10.3服务器上面。

 

 

配置Oracle JDeveloper 11g连接WebLogic 10.3

十月 10, 2008 in Oracle 融合中间件

 

如果还没有安装Oracle JDeveloper 11g,请先阅读 安装 Oracle JDeveloper 11g  。

 

通过JDeveloper11g安装包完全安装后,系统已经安装了WebLogic10.3,下面介绍如何配置一个WebLogic 10.3 Domain通过JDeveloper 11g连接它。

 

JDeveloper要连接到WebLogic需要完成3个步骤的工作:

  1. 创建WebLogic域(domain)
  2. 启动WebLogic服务
  3. JDeveloper中创建应用服务器连接到WebLogic服务

 

 

一、创建WebLogic域

 

创建WebLogic域有以下主要步骤:

  1. 启动WL的Configuration Wizard工具
  2. 选择创建WebLogic域
  3. 基于现有的模板
  4. 创建域的管理员用户和密码
  5. 输入域的名称和域的路径

 

安装好JDeveloper11g之后,可以看到如下的菜单被创建,通过WebLogic中的Configuration Wizard工具来创建WebLogic域

1.start_config_wizard

 

创建一个全新的WebLogic域

2.welcome

 

为了方便,选择一个现有的域作为模板,无需进行很多细节的设置

3.choose_domain_source

 

输入这个域的管理员用户名和密码,记住它,后面登录WL服务的时候需要使用它们。

4.create_admin_user

 

为域取一个容易记住的名称,以便后面的操作;域的位置默认即可。

点击“创建”按钮完成域的创建

7.create_domain

 

 

二、启动WebLogic服务

 

在连接到WL服务之前需要先启动它,创建域之后,菜单项会多出User Project的子菜单,下面选择刚创建的域。

通过Start Admin Server for WebLogic来启动WL服务

9.start_server

 

启动之后可以通过 http://localhost:7001/console 地址登录管理控制台,输入创建域时创建的管理员用户和密码。

10.wl_login

 

管理控制台,后续文章中我们会使用到它

11.wl_admin_console

 

 

三、JDeveloper中创建Application Server连接

 

启动Oracle JDeveloper 11g,通过菜单View–>Application Server Navigator 进入应用服务器连接定义窗口

 

通过上下文菜单启动创建连接向导,输入连接名称,选择连接类型为:WebLogic10.3

12.demo_connection

 

输入WebLogic服务的管理员用户名和密码

14.as_conn_auth

 

配置WebLogic服务连接信息:

  1. WebLogic Hostname
  2. Port
  3. WLS_Domain

15.as_conn_config

 

测试连接配置是否正确

16.as_conn_test

 

 

JDeveloper 11g连接WebLogic10.3配置完成

 

后面可以开始开发PL/SQL类型的Web Service了

 

安装 Oracle JDeveloper 11g

十月 9, 2008 in Oracle 融合中间件

 

 

2008年10月6日,Oracle JDeveloper 11g正式发布第一个正式版本,从2007年5月发布第一个TP版本到正式版发布,之间历时近一年半的时间,由于Oracle 收购BEA的原因,JDeveloper 11g正式版的发布一拖再拖,现在终于等到它了。

 

JDeveloper 11g的发布也标志着Oracle买来Orion Server而发展起来的OC4J就此结束了它的生命周期,从JDeveloper 11g开始,Oracle已经不再发布新版本的OC4J,将应用服务器转向WebLogic;同时Oracle的中间件产品中也不会出现Oracle Application Server 11g的说法。

 

因此这次Oracle 发布的JDeveloper 11g正式版和以往有点区别,Windows平台下已经是一个安装包,其中包括了JDeveloper 11g和WebLogic Server 10.3两个产品。

 

下面是安装步骤的展现:

 

欢迎页面

2.Welcome_Page 

 

 

选择安装主目录

3.BEA_Home

 

 

选择安装类型,完整安装中包括:

  1. JDeveloper&ADF开发工具
  2. WebLogic Server 应用服务器

 

4.Install_Type

 

 

安装汇总

7.Summary

 

安装进度显示

10.Install_Progress3

 

 

安装完成后启动Oralce JDeveloper 11g

12.JDev11g_Flash

 

 

Oracle JDeveloper 11g界面

13.JDev11g_Screen

 

 

尽情领略JDeveloper11g强大的功能吧!!!

 

后续将研究如何使用Oracle JDeveloper 11g来开发PL/SQL类型的Web Service,并将其发布到WebLogic10.3上面

 

浙江安吉、浙西大峡谷自驾游

十月 8, 2008 in 生活点滴/Enjoy Life

 

 

2008-9-30 一早我们一行9人3辆车开始了十一长假的旅行,从上海浦东前往浙江安吉,
经过4个多小时的奔驰,终于到达了藏龙百瀑顶的顺风山庄农家乐。

 

下面是旅游中拍摄的部分照片,特贴到博客中和大家共享我们的喜悦。

 

一、浙江安吉

 

1)藏龙百瀑

anji_waterfall_road

藏龙百瀑的上下天梯,由于瀑布两边山体过于陡峭,无法行走,专门使用钢筋焊接而成的梯子,
我们就这样从山顶走到山下,再从山下爬回山顶。

 

anji_waterfall

藏龙百瀑中的瀑布,由于是冬季,流水比较小

 

2)天荒坪蓄水电站/江南天池

anji_reservoir

天荒坪蓄水电站,同类电站亚洲最大,在山顶上面修建了这么大的蓄水池,因此也被美名为“江南天池”,
它发电的出发点是利用晚上城市用电量少、电费便宜,将700M山下的水抽上山顶的这个天池,
白天电力供应紧张的时候再利用天池的水来发电以供应江浙一带的城市,从而缓解用电高峰缺电的问题。

 

anji_sky_water

一行人在江南天池边留念

 

3)天下银坑

anji_bamboo2

天下银坑的竹林,《夜宴》便是在这竹林中搭起的竹棚中拍摄了关键的多个场景

 

anji_supper_film

拍摄电影《夜宴》留下的,不知道曾经观赏过《夜宴》的朋友是否还有那么一丝回忆?

 

anji_supper_all

大家在夜宴的拍摄现场留下了难忘的合影,在留念的同时也不忘恶搞一把旁边的旅友,汗!!!

 

4)难忘的农家菜

anji_natural_chicken

安吉农家乐最出名的本土鸡煲,原汁原味,现在都还流口水

 

anji_bamboo_food

到了安吉怎么能够少得了它呢,油焖笋,又嫩又可口

 

 

在安吉开心了2天多,2008/10/2一早从顺丰山庄赶往浙西大峡谷,一路穿梭在山道中,150公里花了近4个小时的时间。

 

二、浙西大峡谷

 

zhexi_drift

浙西大峡谷中最出名的峡谷漂流,我们一行9个人无法在同一个皮划艇中,被分到了两条皮划艇,刚好可以大家互相拍照,互相臭屁一番!!!

 

 

zhexi_jianmenguan

漂流结束后顺便一起参观了其中的一个景点:剑门关,上图是高空杂技表演

 

 

zhexi_waterfall

拓林瀑,浙西大峡谷中4个景点中最小的一个,但是它的瀑布以奇石和水流而出名

 

zhexi_gorge

 

zhexi_gorge2

景点老碓溪中的人工竹划艇