WebLogic81学习笔记.docx

上传人:b****7 文档编号:9792775 上传时间:2023-02-06 格式:DOCX 页数:30 大小:878.13KB
下载 相关 举报
WebLogic81学习笔记.docx_第1页
第1页 / 共30页
WebLogic81学习笔记.docx_第2页
第2页 / 共30页
WebLogic81学习笔记.docx_第3页
第3页 / 共30页
WebLogic81学习笔记.docx_第4页
第4页 / 共30页
WebLogic81学习笔记.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

WebLogic81学习笔记.docx

《WebLogic81学习笔记.docx》由会员分享,可在线阅读,更多相关《WebLogic81学习笔记.docx(30页珍藏版)》请在冰豆网上搜索。

WebLogic81学习笔记.docx

WebLogic81学习笔记

BEAWebLogicWorkshop8.1学习笔记之一 - 准备篇

前言

本文作者用BEAWebLogicWorkshop做了一个简单的EJB的开发的例子,并对该例子做了一些Web应用方面的拓展,力图通过这些使用流程教会读者能够上手使用BEAWebLogicWorkshop。

WebLogicWorkshop8.1产品概述

BEAWebLogicWorkshop是一个统一、简化、可扩展的开发环境,能够使所有开发人员(不仅仅是J2EE专家)都能够在BEAWebLogicPlatform8.1上,迅速构建、测试和部署面向服务的企业级应用。

WebLogicWorkshop8.1的独特性表现在:

·统一性--它是构建所有平台应用的一个IDE,一个框架和一种面向服务的方法,无论是构建Web应用、Web服务,还是构建门户和集成应用全都适用。

·简便性--它使所有的开发人员都能够使用J2EE,而且变得更富有效率。

即使是没有J2EE或面向对象编程经验的大量主流业务应用开发人员也是如此。

·可扩展性--它提供了Java控件,也就是面向服务的组件,使IT能方便地连接、使用和重复使用任何IT系统或平台项目上的应用。

最终结果:

WebLogicWorkshop8.1使IT效率空前提高,加快了IT价值的实现。

IT开发人员因此可以从事任何IT项目的开发,并充分发挥出WebLogicPlatform8.1中IT资产的作用。

初始配置

BEAWebLogicWorkshop8.1是BEAWebLogicPlatform8.1产品的一个组成部分:

所以安装完Platform后,你就可以使用Workshop了。

你可以从BEA站点上下载相应平台的在线安装包或整个安装包,WebLogicPlatform8.1的下载地址是:

产品安装完成后,可以运行配置向导"ConfigurationWizard"进行相关配置

要开发或运行WebLogicPlatform的应用,必须创建一个相关的domain,我们选择建立一个"basicWebLogicPlatformdomain",这是最全的domain,其支持WebLogicWorkshop运行时框架,Portal应用,Integration应用,所以注意配置到这个页面中做如下选择:

通用数据库客户端工具(DbVisualizer)

附带再介绍一个工具:

通用数据库客户端工具(DbVisualizer)。

用该工具能够方便的连接各类通用的数据库,使用起来只需要简单地配置一下,比如我们要连POINTBASE,只需要改动一下启动脚本C:

\bea\weblogic81\common\eval\dbvisualizer\run.bat,把POINTBASEDriver加到classpath中,所以在run.dat脚本中,加入如下语句:

set_CLASSPATH=%CLASSPATH%

rem######################addedbylw#################

SETWL_HOME=C:

\bea\weblogic81

SETPOINTBASE_HOME=%WL_HOME%\common\eval\pointbase

SETPOINTBASE_CLASSPATH=%POINTBASE_HOME%\lib\pbserver44.jar;%POINTBASE_HOME%\lib\pbclient44.jar

setCLASSPATH=%CLASSPATH%;%POINTBASE_CLASSPATH%

rem######################end#################

然后运行DbVisualizer

我们用这个工具Create一个表

CREATETABLELWTEST.SIMPLE_EX(

company_idVARCHAR(20)CONSTRAINTproduct_category_pkPRIMARYKEY,

company_nameVARCHAR(40)NOTNULL

BEAWebLogicWorkshop使用笔记之二-EJB开发篇

续上篇,通过本文的学习,读者将能掌握:

1会使用WebLogicWorkshop创建EJB应用;

2学会使用EJBControl,用WebLogicWorkshop快速对相应EJB进行测试;

类似的在Workshop上开发EJB的文章在dev2dev站点上有一篇,《用WebLogicWorkshop开发EJB》,所以在本文中与其相同的内容部分我就不再多讲。

用WebLogicWorkshop创建一个应用(application)

在这里读者一定要明白Workshop中应用(Application)和项目(Project)两个模型的意义及它们间的关系

应用(Application)模型是:

∙作为一个单元部署到服务器的资源与组件的集合

∙在WorkshopIDE中操作的最顶层工作单位

∙一个J2EEEnterpriseApplication(EAR)

∙一个应用(Application)可包含一或多个项目(Project),libraries及securitymappings

上图表明的意思是,建立的这个应用类型是Portal应用,其支持Portal应用,指定的这个应用将部署在我们刚建的那个Platform类型的domain上(mdomain)。

建立EJB项目(Project)

项目(Project)模型定义了开发者如何:

∙组织应用源文件

∙使用组件组装应用

∙贯通编码、编译、调试周期

∙打包用于部署的应用

项目类型有:

Project类型

简述

Web

Web应用类型

WebService

WebService应用类型

Control

用于构造和打包可在其他Projects的components中使用的控件

EJB

支持创建及部署新的EJB

Java

用于开发或汇总通用JAVA代码,而这些代码并不属于像web services,controls或EJBs这样的实体

Schema

提供方便地自动存取BEA的XMLBeans的功能

Portal

类似于一个WEBProject,但提供Portal功能

Datasync

用于开发和维护通用的门户服务,以方便应用及门户的个性化开发使用

Process

包含业务流程文件、控制文件及数据转换等文件

我们继续创建EJBProject,右键点击MyEJBApp,然后选择"new"一个"project",在弹出对话框中选中Project类型为EJB项目,再点击"create"创建该EJBProject。

创建实体bean

右键点CompanyEJB项目,new一个Entitybean(Entitybeanfromdatabasetable)

随后选择DataSource,选择我们的表"SIMPLE_EX"

下图是我们通过wizard创建好的EntityBean雏形

这个雏形中,只有一个简单的create方法,我们可以根据需要,为这个EntityBean再定制加入create方法、find方法等等,只需要再DesignView中点击鼠标右键,进行选择添加。

添加EJBCreate方法

如上图,先右键点击原EJBCreate()方法,将其删除,然后在Designview面板上点击鼠标右键选择"AddEJBCreate",在接下来弹出的窗口中,把两个field都给选上,再点击ok。

添加FindAll方法

如上图,选择"AddFinder"

添加Findby方法

方法如上,只不过在"AddFinder"菜单中填上:

MethodSignature:

Simple_exfinderByNO(java.lang.StringsCOMPANY_ID)

EJB-QL:

SELECTOBJECT(o)fromSimple_exBeanasowherepanyIdLIKE?

1

同样加上

MethodSignature:

Simple_exfinderByCompanyName(java.lang.StringsCOMPANY_NAME)

EJB-QL:

SELECTOBJECT(o)fromSimple_exBeanasowherepanyNameLIKE?

1

对EJB的一些属性可直接在"属性编辑器"中进行设置,比如"ejb-name",是否是local的EJB等等。

比如需要在下图中在把"table-name""SIMPLE_EX"改成"LWTEST.SIMPLE_EX"。

测试EJB

1右键点击"MyEJBApp"应用,建立一个测试用的"WebProject",名为"EJBTest";

2在这个"EJBTest"下新建一个目录"TestEJB"

3右键点击这个目录,"new"一个"JavaControl",其类型选择为"EJBControl"

上图中4个步骤完成后,将生成一个TEJB.jcx控件,然后再鼠标右键点击这个EJB控件,选择"CreateTestJWSFile",用WebService进行这个EJB控件的测试

双击新生成的TEJBTest.jws文件,将TEJBTest中的两个方法删除,

从"DataPalette"中展开"tEJB"控件,从控件中选择我们想要测试的方法,拖拽到"DesignView"中

因为create方法返回的是SIMPLEEJB.Simple_ex,不能被WebService测试页面直接显示,故系统会报如下提示信息。

因而我们需要对加入的这个create方法做下处理,点击create()方法,进入SourceView,对其返回值做处理:

publicStringcreate(java.lang.Stringarg0,java.lang.Stringarg1)throwsjavax.ejb.CreateException

{

return(tEJB.create(arg0,arg1)).getCompanyName();

}

同理再拖拽入finderByCompanyName(),finderByNO()方法,并对其返回值做相应的修改

publicStringfinderByCompanyName(java.lang.Stringarg0)throwsjavax.ejb.FinderException

{

StringsInput="%"+arg0+"%";

returntEJB.finderByCompanyName(sInput).getCompanyName();

}

publicStringfinderByNO(java.lang.Stringarg0)throwsjavax.ejb.FinderException

{

StringsInput="%"+arg0+"%";

returntEJB.finderByNO(sInput).getCompanyName();

}

点击Workshop工具栏上的运行按钮"

",进行测试

可以用这个测试窗口在Create部门,输入相应的值,生成数据项,比如

stringarg0:

1

stringarg1:

BEA

然后可再测试finderby方法

测试结果如下:

小结

本文给读者简述了在WebLogicWorkshop上进行EJB的开发、测试方法,以期使读者通过对本文的学习能够快速入门WebLogicWorkshop的开发。

在下一篇使用笔记中,作者将给大家介绍如何用Workshop开发一个调用该EJB的简单的Pageflow,敬请大家关注。

BEAWebLogicWorkshop使用笔记之三-Web应用篇

续EJB开发篇,通过本文的学习,读者将能领会在WebLogicWorkshop上的Pageflow应用开发。

本文,我们需要建立一个简单的Web应用,提供相应的友好界面来调用刚开发完毕EJB组件,在这个web应用中我们要使用到Pageflow。

什么是PageFlow

PageFlow是一个基于Struts1.1的web应用编程模型,替代了早期Portal产品中的webflow,不再属于Portal专有,用以实现web应用中用户界面、业务逻辑、导航控制的分离,并且大大简化了WEB应用的开发过程,提高了开发效率

为什么要使用PageFlow?

企业的WEB应用经常由成千上万的页面组成,维护这样一个网站通常是一件复杂、枯燥、耗时的任务。

PageFlow提供了一个易使用的框架结构来建立动态、复杂的WEB应用;并且通过用户界面、业务逻辑、导航控制的分离,避免了Web开发中经常出现的一些问题,提高了业务逻辑代码的可重用性。

PageFlow的编程模型

沿用了StrutsModel2的MVC模型

模型(ModelM)组成部分

该部分可以由CustomControl文件(*.jcs),JavaControl文件(*.jcx),WebService文件(*.jws)或Process文件(*.jpd)等文件装配而成。

视图(ViewV)

由*.jsp等文件来实现

控制器(ControllerC)

由JavaPageFlow文件(*.jpf)来实现

关于Pageflow的更多信息请参考dev2dev中文站点上的这篇文档:

BEAWorkshop8.1之JavaPageFlow介绍byDougDew,JavaPageFlow项目经理

建立Pageflow

我们在上一章中建好的EJBTest项目上继续Web应用的开发,右键点击EJBTest项目,选择"new"一个"PageFlow"

在DesignView中将index.jsp页面删除,只留下Begin按钮,然后将myControl控件的"finderByCompanyName"方法拓展到DesignView中,它将在这个Pageflow中成为一个带FormBean的action"finderByCompanyName",同时这个FormBean也显示在FormBeans选项版中(FormBean是PageFlow中的数据的承载体,其一个作用是用于页面中的form提交时存储form中的数据,其实质是一个JavaBean)

右键点击刚生成的action,选择"GenerateInputPage"选项,Workshop将根据你action的FormBean的参数,自动生成一个输入页面finderByCompanyNamePage.jsp。

我们调整一下它们的位置,并且从Begin节点拉一条连接线,使得Begin开始后的PageFlow走到finderByCompanyNamePage.jsp页面。

这个PageFlow开始后将走到一个输入页面finderByCompanyNamePage.jsp,让你输入finderByCompanyName需要的数据,获得数据后,将到"finderByCompanyName"action中处理。

EJB控件myControl的finderByCompanyName()方法返回的是一个EJB对象的引用,我们对其做部分处理,使得它能返回Company中的全部信息("NO"及"COMPANY_NAME"),在PageFlow中传递数据的方法有很多中比如用Request、Session、FormBean等等进行数据的传递,在本例中我们为这个Pageflow增加两个Public的String型变量"sNO"、"sCompanyName"用来承载"COMPANY"信息。

关于PageFlow的传值的更多相关信息请读者阅读相关文档:

∙dev2dev中文站点的《数据绑定101》这篇文档

∙Workshop联机帮助文档DevelopingWebApplicationsàGuidetoBuildingPageFlowsàUsingDataBindinginPageFlows部分(在Workshop中按F1出联机文档,或是直接访问

然后在Pageflow中,双击"finderByCompanyName"节点,进入"SourceView"编辑器,更改finderByCompanyName()方法,将myControl.finderByCompanyName()方法的返回的CompanyNO和CompanyName赋值给相应的变量。

publicclassInvokeEJBPFControllerextendsPageFlowController

{

/**

*Thisisthecontrolusedtogeneratethispageflow

*@common:

control

*/

privateTEJBmyControl;

publicStringsNO;

publicStringsCompanyName;

……….

/**

*@jpf:

action

*@jpf:

forwardname="success"path="showCompanyInfo.jsp"

*/

protectedForwardfinderByCompanyName(FinderByCompanyNameFormform)

{

SIMPLEEJB.Simple_exsBean;

try

{

 sBean=myControl.finderByCompanyName("%"+form.getArg0()+"%");

 this.sNO=sBean.getCompanyId();

 this.sCompanyName=sBean.getCompanyName();

}

 catch(Throwablet)

{

 t.printStackTrace();

}

returnnewForward("success");

}

"finderByCompanyName"action处理完后我们需要一个页面把这个处理结果显示出来,所以,从"Pallete"面板中拖拽出一个"page"到设计视图中,并命名为"showCompanyInfo.jsp"

双击这个showCompanyInfo.jsp页面,进入这个页面的编辑界面,我们需要对其加入部分定制代码段来显示出finderByCompanyName处理的结果。

1.删除默认jsp页面上的文字;

2.从"选项板"中拖拽"表格"到空白的jsp页面上,设置表格属性为4行2列;

3.使用"表导航器"合并表头,和表尾;

4.往表的6个表格中拖拽入"Label"标签

5.对上诉table中的label值在属性编辑器中设定,由上至下,由左至右设定成:

CompanyInfo

NO:

{pageFlow.sNO}

CompanyName:

{pageFlow.sCompanyName}

"{pageFlow.sNO}"是一段表达式,"pageFlow"代表了对这个jsp所处的PageFlow对象的引用,"sNO"是这个对象的一个属性值,这对大括号的作用的是表明"pageFlow.sNO"应当做为一个表达式来处理,而不是做为一个值来被直接显示。

6.对这个JSP页面加上返回连接,使得点击后它能返回主页面,通过拖拽的方式从"选项板"中拖拽"Anchor"标签到设计视图中,如下图设置属性,定位方式选中"调用某个操作",文本属性是这个标签的显示文字"return",操作属性的意思是这个"Anchor"标签会调用PageFlow中的那个操作,我们选择"begin",表明调用PageFlow开始节点。

7.点击保存,回到PageFlow页面,我们运行这个PageFlow进行测试。

PageFlow的相互调用

在Workshop中开发PageFlow的相互调用也很简单,在接下来的创建CreateCompanyPageFlow的过程中将为读者演示PageFlow调用的开发。

1.右键点击"EJBTest"项目,选择"新建"一个"页面流",然后起名为"CreateCompany",删除无用的"index.jsp",只留下"Begin"节点,然后将TEJB.jcx控件从"应用程序"面板中拖拽到DesignView中

2.从"数据选项板"中拖拽"tEJB"控件的"create"方法到设计视图中来,它将生成一个"create"action,再右键点击这个"create"action,选择"生成输入页",入下图

3.将"begin"节点和新生成的"createPage.jsp"页面间联线关联起来。

然后再把我们刚建立好的PageFlowInvokeEJBPFController.jpf给拖拽进这个PageFlow中来,如下图

4.右键点击新拖拽进入的"InvokeEJBPF"节点,选择"生成调用操作",再从"create"节点和"createPage.jsp"页面节点上拉出连线链接到新的"show_invokeEJBPF"节点上,如下图

5."createPage.jsp"页面出现红色波浪线表明该页面上有错误,这个错误其实是因为我们还没有在页面上加连接到"show_invokeEJBPF"节点上的连接,所以报错,因而我们需要修改createPage.jsp页面,往其中加一个"ReturnHome"按钮,使其能返回主页面。

6.再看这个CreateCompanyController.jpf,一切都ok,我们可以运行并测试它。

该EJB剩下的两个方法(FinderByNO()方法和FinderAll()方法)请读者自己练习,最后做成的PageFlow如下:

源码参见本文附的下载包。

小结

笔者期望读者通过本文的阅读及练习能够入门在BEAWebLogicWorkshop上的WebApp应用开发。

在下一篇使用笔记中,作者将给大家介绍如何用Workshop开发一个调用该PageFlow的Portal应用,敬请关注。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1