随笔-71  评论-4  文章-0  trackbacks-0

文章摘要:现在很多J2EE应用程序开发模式都是使用Jbuilder+Weblogic+Oracle开发,而Jbuilder由于占用内存大,而对机子配置提出了更高的要求。本文向大家介绍一种方便,并且提供丰富插件并且免费的可视化编程工具Eclipse.。本文所使用的开发环境为Eclipse+Weblogic+Oracle。文中简要介绍了环境的配置,会话EJB、实体EJBCMP)的创建过程,Struts框架的使用方法等。

文章目录

文章标题:在Eclipse+WebLogic下开发J2EE应用程序...

文章目录:...

正文部分:...

一.环境准备...

开发工具与插件介绍...

安装并配置环境变量...

Weblogic 8.1的配置与使用...

Eclipse的配置与使用...

Oracle的配置与使用...

. 实例概述...

数据库...

结构图...

三.创建无状态会话Bean.

工作...

创建J2EE项目...

创建Stateless Session Bean.

打包发布EarLeave.

四.创建CMP----UIDGenerator.

任务...

创建CMP实体Bean----UIDGenerator.

添加业务方法nextValue.

添加回调方法...

在LeaveAccess中添加业务方法...

创建测试程序...

五.创建CMP----LeaveApp.

任务...

创建CMP实体Bean----LeaveApp.

实现ejbCreate方法...

增加查询方法...

增加业务方法getLeaveAppData().

在LeaveAccessBean中添加业务方法getAllLeaveApp.

为LeaveAccess添加业务方法SaveLeaveForm.

测试CMP.

六.创建web客户端...

任务..

创建leave.jsp.

创建display.jsp.

文章总结...

正文部分:

一.环境准备

开发工具与插件介绍

1、  JDK

j2se v1.4.2  http://java.sun.com/j2se/downloads.html

2、  Weblogic

Weblogic8.1 http://dev2dev.bea.com.cn/

应用服务器(APS),提供J2EE组件运行所用的J2EE容器和优秀的集成开发环境。

3、  ECLIPSE

eclipse v2.13 http://www.eclipse.org/

j2ee集成开发环境。

注意:不要下3.x版的,因为 EasyStruts plugin 是在 Eclipse 2.x 环境下编写的而不是3.x. Eclipse 3.x为他们的 plugins使用了不同的格式和 APIs . 所以不能兼用。

4、  Oracle

Oracle8.1.7 http://www.mysql.com/

大中型关系数据库

5、  LOMBOZ

lomboz.v213 http://www.objectlearn.com/index.jsp

LOMBOZ Tutorials http://www.objectlearn.com/support/docs/index.jsp

eclipse开发EJB的插件

6、  EASYSTRUTS

easystruts http://sourceforge.net/projects/easystruts

eclipase开发struts的插件

7、  STRUTS

struts http://jakarta.apache.org/struts/

基于Module-View-Control(MVC)模式的Web框架(Framework).

8、  JASPERREPORTS

jasperreports http://jasperreports.sourceforge.net/

强大的报表生成工具,可将富文本显示在屏幕、打印或转换成流行的PDFHTMLXLSCSVXML格式。


安装并配置环境变量

1、  JDK

j2sdk1.4.2安装在C:j2sdk1.4.2

设置环境变量JAVA_HOME=C:j2sdk1.4.2

PATH=%PATH%;%JAVA_HOME%in;%JAVA_HOME%jrein;

CLASSPATH=%CLASSPATH%;%JAVA_HOME%lib ools.jar;%JAVA_HOME%libdt.jar;

2、  Weblogic8.1

Weblogic8.1安装在C:ea

安装后,会直接加入环境变量

PATHCLASSPATH

3、  ECLIPSE

eclipse-2.13安装在C:eclipse

4、  Oracle8.1.7

Oracle8.1.7安装在D:oracleOra81

5、  LOMBOZ

lomboz.213.zip解压,然后把文件夹featuresplugins中文件夹和文件拷贝到eclipse相应目录。

6、  EASYSTRUTS

org.easystruts.eclipse_0.6.4.zip解压,然后将com.cross.easystruts.eclipse_0.6.4拷贝到eclipseplugins目录

7、  STRUTS

jakarta-struts-1.1解压到C:jakarta-struts-1.1

设置环境变量STRUTS_HOME=C:jakarta-struts-1.1

CLASSPATH=%CLASSPATH%;%STRUTS_HOME%libstruts.jar;

8、  JASPERREPORTS

jasperreports-0.5.0-project解压到C:jasperreports-0.5.0

设置环境变量CLASSPATH=%CLASSPATH%;

C:jasperreports-0.5.0distjasperreports-0.5.0.jar;C:jasperreports-0.5.0libservlet.jar;

Weblogic 8.1的配置与使用

1。如果已经设置了环境变量,则启动WebLogic8.1Configuration Wizard,新建一个 weblogic service。建立全部使用默认的配置。完成后将在myserver下新建一个mydomainweblogic service

2。启动WebLogic8.1,并打开一个IE,在URL中输入http://localhost:7001/console,对新建service的属性进行配置。输入建立weblogic service注册的usernamepassword

3l如果你的browser不支持console,可以download新的browser。一般情况下没有必要。点选下方的”continue with my current browser”超链接。.

4l点击“Deployerments”节点->Web Application Medules”,选择其中的“Deploy New Web Applocation Medules,新建一个Application

5l选择此WebServer的默认的目录:(注意:目录下含有WEB-INF目录,在WEB-INF目录下含有web.xml文件的文件夹才能设置成默认目录)。然后点击“target modules

建立完成。

52再次启动WebLogic8.1Configuration Wizard,选择extend an existing weblogic configuration,点下一步。选择先前建立的weblogic service,点下一步。选择DefaultWebApp,点下一步,这样就建立了一个默认的Web应用。

6。通过monitoring标签可以查看Application的资源的情况。

测试:

重新启动WebLogic8.1,在IEURL中输入http://localhost:7001/DefaultWebApp/index.html

weblogic81 的目录C:eauser_projectsdomainsmydomain_server(我建立的相应WebServer目录)下找到config.xml文件,在文件中找到

IdentityAndTrustLocations="KeyStores" ListenPort="7002" Name="myserver"/>

这一句。在其下面添加一行:

<WebServer DefaultWebApp="DefaultWebApp" Name="myserver"/>

保存。

就为这个Application设置了一个默认目录为空。可以在URL中输入http://localhost:7001/index.html。进入wl81主目录。

7。关闭Weblogic8.1应用服务

选择先前建立的myserver,,点右键选取start/stop this server…,关闭服务。

配置连接池和数据源

1、  配置JDBC

启动weblogic server,进入console,点Connection Pool,选取Configure a new JDBC Connection Pool... 填入以下信息。

General栏目:

 



Connection栏目:

CapacityIncrement = 50
MaxCapacity = 100
Capacity Increment: 5
Statement Cache Type:LRU
Statement Cache Size: 5

最后,点击Apply,然后去Targets,选中你的server,点Apply。

至此,Connection Pool已经配置完毕。

2. 指定数据源

单击DataSources,进入配置界面。

1. 单击Configure a new JDBC Data Source..配置新的datasource

2。填入以下数据:
Name: MyDS (自己随便起)
JNDI: jdbc/OracleDS
 
把后边两项打上勾。


Pool Name: MyOra (一定要对应你的Connection Pool的 Name)
点击Create,然后去Targets里边,点击apply。。

配置完成。。。

Eclipse的配置与使用

1、  安装Eclipse

解压eclipse-SDK-M20040218-win32.zipc:eclipse

解压Lomboz插件lomboz.213.zip,然后拷贝到eclipse相应目录plugins;

解压Struts插件org.easystruts.eclipse_0.6.4.zip,然后拷贝到eclipse相应目录plugins;

解压拷贝至plugins文件夹后重启eclipse

2、  配置Lomboz

2.1、选择菜单Window > Open Perspective > Java

2.2、选择菜单Window > Customize Perspective > Other,Lomboz Actions子菜单打勾,OK后工具栏上将增加一个相应图标按钮,点击它会在工作台上出现一个Lomboz J2EE视图

2.3、选择菜单Window > Customize Perspective > File > New,将所有以Lomboz开头的节点打勾。完成之后,在我们的菜单File->New之后出现了许多以Lomboz开头的文件类型

2.4、选择菜单Window > Customize Perspective > Window > Show view,选择其中的ConsoleLomboz J2EE View

3、  配置Eclipse

3.1、选择菜单Window > Preferences > Java > New Project,指定源文件和输出文件的文件名:Source folder name:srcOutput folder name:bin

3.2、选择菜单Window > Preferences > Lomboz,确信JDK Tools.jar被设置为%JAVA_HOME%lib ools.jar

3.3.、再进入Lomboz下的Server Definitions子节点,在Server types下找到我们期望的BEA Weblogic Server v8.1,中的Server NameserverDirectoryusername,password作相应修改即可。

4、  配置Struts

4.1、选择菜单Window > Customize Perspective > File >New,选择其中的Easy ×××项打勾

4.2、选择菜单Window > Preferences > Easy Struts,Struts1.1,Add JARs,添加%STRUTS_HOME%lib*.jar;再点Add TLDs,添加%STRUTS_HOME%webappsstruts-templateWEB-INF*.tld;

Oracle的配置与使用

1、    创建数据库时注意实例名和相应表空间,回滚段的设置(详情请参考oracle相应书籍)

2、    启动SQL PLUS

3、    登录数据库

我的应用环境登录用户名sb502,密码sb502

connect sb502/sb502(如果是连接远程数据库使用连接串connect sb502/sb502@alias )

4、    创建数据库orcl;(注意应给登陆用户赋予相应的权限)

5、    因我装的是oracle817,所以将oracle目录下的classes12.zip, nls_charset12.zip拷贝至weblogic81安装的目录下的你建立的Web应用的相应lib目录下,将其写进环境变量,并将其写进启动脚本startWLS.cmdclasspath加上oracle驱动,以便于weblogic8.1连接池的配置。

注意:Oracle 8.17与 奔腾 四 1。7G的CUP会有冲突,出现无法正常安装的问题。这时可以将Oracle 8.17的安装文件拷到硬盘上,再在安装文件夹中搜索“SYMCJIT.DLL”的文件,应该可以找到2个,删除掉即可正常安装。

.实例概述

数据库

1、  数据库orcl中有两个表,它们由CMP自动生成。其中t_uidgenerator有两个字段:NAME代表应用名、UID代表此应用的唯一标识号;t_leaveapp有如下七个字段,分别代表请假单的标识号、员工编号、员工名、部门、请假日期、请假天数、请假原因。

      t_uidgenerator                             t_leaveapp

圆柱形: NAME VARCHAR (PK)
UID INTEGER
圆柱形: UID INTEGER (PK)
EMPLOYEENO VARCHAR
EMPLOYEENAME VARCHAR
DEPARTMENT VARCHAR
LEAVEDATE DATE
LEAVEDAYS INTEGER
REASON VARCHAR

 

 

结构图

1、  leaveApp结构图:客户端通过web请求Servlets(或JSP),servlet调用Session EJB ----LeaveAccess提供的方法访问数据,而数据的存取由对应的CMP EJB来实现。(注:CMP是由EJB容器自动完成对数据库的操作,你所有做的,就是在实体bean重写入SetXXXgetXXX方法,然后在ejb-jar.xml中定义cmp-field就可以。)

      


2         leaveAccessBean是一个Session EJB,它封装了与实体Bean UIDGeneratorLeaveApp复杂的业务交互,为表达层提供各种数据访问接口。

三.创建无状态会话Bean

工作

1、  创建一个J2EE项目,命名为MyLeave

2、  创建一个无状态会话Bean,包为com.ssess.session,命名为LeaveAccess

3、  部署LeaveAccess Bean

创建J2EE项目

1、  点菜单File > New > Lomboz J2EE Project,将弹出一个创建向导窗口。

2、  Project name后输入项目名MyLeave,点Next

3、  Java Settings窗口中,确定SourceSource foldersMyLeave/src(new)output folderMyLeave/bin,点Next进入Create J2EE Module窗口

4、  Web Modules下点Add按钮,输入Module NameWebLeave

5、  Ejb Modules下点add按钮,输入Module NameEjbLeave

6、  Targeted Servers下选typeBEA Weblogic Server v8.1 Add按钮,将会在Targeted Servers框中添加一个BEA Weblogic Server v8.1的服务器

7、  完成后点Finish按钮

创建Stateless Session Bean

1、  选菜单File > New > Lomboz EJB Creation Wizard,将打开Create EJB窗口

2、  指定Packagecom.ssess.sessionNameLeaveAccessEJB TypeStateless Session EJB

3、  Finish完成后将在src目录下创建一个包为com.ssess.session的会话Bean----LeaveAccessBean

4、  从上图我们可以看到,它已经创建了一个Class级别的标签(Tag)@ejb.bean,该标签指明了Bean的类型、名字以及将在Home 接口里生成的JNDI名。(注意:我们为Bean命名的时候不需要以Bean结尾,向导将自动为我们添加)

5、  打开节点EjbLeave > META-INF下的xdoclet.xml文件,Lomboz就是使用它来生成需要的接口类和帮助类,当你有一些特殊的需求时可以编辑此文件,关于其中标签的含义及用法请参考Xdoclet文档的ejbdoclet部分。

6、  <dataobject/>将生成数据对象来处理EJB组建持久域(对应于数据库中表的列)的值。

<utilobject/>创建访问远程和本地Home对象的方法

<remoteinterface/>生成EJB的远程接口

<localinterface/>生成EJB的本地接口

<homeinterface/>生成EJB的远程Home接口

<localhomeinterface/>生成EJB的本地Home接口

<entitypk/>生成EJB的主键类

<entitybmp/>BMP创建实体bean

<entitycmp/>CMP创建实体bean

<session/>生成会话bean

7、  <weblogic/>weblogic服务器所需的标签,必须指定数据源、数据源映射和关系映射。我们设定datasource=”我填的是weblogic设的数据源值;更多信息可以参考有关weblogic文档。

  <weblogic version="6.0" xmlencoding="UTF-8" destdir="${ejb.dd.dir}" validatexml="false" datasource="MyDS" mergedir="${ejb.dd.dir}" persistence="weblogic" />

8、  展开com.ssess.session包下的LeaveAccessBean节点,用右键打开快捷菜单,选择Lomboz J2EE > Add EJB to Module,在EJB[EjbLeave]前打勾,点OK将会话Bean添加到EJB模块中。

9、  选择菜单 Window > Show View > Lomboz J2EE View打开Lomboz J2EE View视图,可以看到EjbLeave模块下出现了com.ssess.session.LeaveAccessBean

10、              右键点Package Explorer视图中的节点EjbLeave,选Lomboz J2EE > Generate Ejb Classes。完成后将在ejbsrc下生成LeaveAccess.javaLeaveAccessHome.javaLeaveAccessLocal.javaLeaveAccessLocalHome.javaLeaveAccessSession.javaLeaveAccessUtil.java六个java文件;在EjbLeave > META-INF 下生成ejb-jar.xmljboss.xml,weblogic-ejb-jar.xml

<weblogic-ejb-jar>

 <description><![CDATA[Generated by XDoclet]]></description>

   <weblogic-enterprise-bean>

      <ejb-name>LeaveAccess</ejb-name>

      <stateless-session-descriptor>

      </stateless-session-descriptor>

      <reference-descriptor>

      </reference-descriptor>

      <jndi-name>LeaveAccessBean</jndi-name>

      <local-jndi-name>LeaveAccessLocal</local-jndi-name>

   </weblogic-enterprise-bean>

<!--

To add enterprise beans that you have deployment descriptor info for, add

a file to your XDoclet merge directory called weblogic-enterprise-beans.xml that contains

the <weblogic-enterprise-bean></weblogic-enterprise-bean> markup for those beans.

-->

</weblogic-ejb-jar>

打包发布EarLeave

1、  右键点MyLeave > New > Lomboz EAR Module,弹出Create Ear Module窗口,将display-name:lomboz改名为EarLeave,右键点EarLeave选择Add web module增加一个myapp.war、右键点EarLeave选择Add ejb module增加一个myBean.jar。设置Ear下的display-namedescriptionLeave Application Form

2、  选中左边Leave Application Form下的myapp.war,修改右边的web-uriWebLeave.warcontext-root/leavelinked web module选中WebLeave

3、  选中myBean.jar,修改右边ejb-jar uriEjbLeave.jarLinked ejb module 选中EjbLeave

选择Targeted ServersBEA Weblogic Server v8.1,完成设置。将在MyLeave下生成EarLeave模块。打开META-INF下的build.xml,删除<target name=”modules” depends=”init”>下的重复项。(如果我们创建ear模块时不设置Linked web moduleLinked ejb module无法生成application.xmlbuild.xml,设置后build.xml中出现重复项<ant …>,须删除重复项

4、  展开Lomboz J2EE View视图下的MyLeave项目,右键点EarLeave,选Deploy。(当然,我们事先启动BEA Weblogic Server v8.1 server

四.创建CMP----UIDGenerator

下面介绍如何创建一个CMPUIDGenerator是一个序列生成器,负责为各个应用生成唯一标识符。

任务

1、  创建一个CMP,包为com.ssess.cmp,名为UIDGenerator

2、  实现ejbCreate方法:将所有属性值作为参数传递进来,调用相应的set方法设置值。

3、  增加一个业务方法取下一个可用的序号:public Integer nextValue()

4、  部署UIDGeneratorBean

5、  LeaveAccessBean中添加一个业务方法:public Integer nextValue(String name)

6、  增加回调方法setEntityContextunsetEntityContext

7、  创建一个客户端测试程序SessionCMPClient,包为com.ssess.client

8、  运行客户端程序并测试Bean

创建CMP实体Bean----UIDGenerator

1、  Package Explorer视图中展开MyLeave节点,右键点src打开快捷菜单,选New > Lomboz EJB Creation Wizard,在打开的EJB创建向导中指定Packagecom.ssess.cmpNameUIDGeneratorEJB Type选择Container Managed Entity EJB。点Next

2、  打开Container Managed Persistence对话框,指定Schema nameUIDGeneratorTable namet_uidgenerator

3、  Persistent fields下指定FieldnameField typejava.lang.StringDatabase columnnameSQL typevarchar;然后点Add按钮将在Fields中添加一项;选中该项,点“Make primary key”按钮

4、  Persistent fields下指定FielduidField typejava.lang.IntegerDatabase columnuidSQL typeinteger;然后点Add按钮将在Fields中再添加一项。完成后点“finish

5、  完成ejbCreate(String name)方法

public java.lang.String ejbCreate() throws javax.ejb.CreateException {

       String name=null;

setName(name);

       setUid(new Integer(0));

       return null;

    }

6、  展开Package Explorer视图下src > com.ssess.cmp包,右键点UIDGeneratorBean.java,选Lomboz J2EE > Add Ejb to Module,在弹出的对话框中将EJB[EjbLeave]打勾后“OK

7、  右键点Package Explorer视图下的EjbLeave,选Lomboz J2EE > Generate EJB Classes。完成后将在ejbsrc下生成UIDGenerator.javaUIDGeneratorCMP.javaUIDGeneratorData.javaUIDGeneratorHome.javaUIDGeneratorLocal.javaUIDGeneratorLocalHome.javaUIDGeneratorUtil.java

8、  @ejb.bean标签提供了关于EJB的信息:名字、JNDI名、类型、主键、还有Schema(用在查询语句SQL中)

@ejb.persistence标签在class级提供与CMP实体Bean对应的表信息;在method级时提供Bean的持久性属性与数据库中表的各列的映射信息

@ejb.pk-field标签定义主键

添加业务方法nextValue

1、  展开Package Explorer视图下MyLeave > src > com.ssess.cmp > UIDGeneratorBean.java,右键点UIDGeneratorBean,选New > Lomboz EJB Method Wizard,在弹出的对话框中输入Method Signaturepublic Integer nextValue()Method TypeBusiness MethodInterface Type Local Interface;然后点按钮“Finish”。

2、  实现nextValue方法:

3、  右键点Package Explorer视图下的EjbLeave,选Lomboz J2EE > Generate EJB Classes

添加回调方法

1、  导入包javax.ejb.EntityContextimport javax.ejb.EntityContext

2、  增加一个变量域eContext用来存储entity contextprivate EntityContext eContext

3、  增加一个方法setEntityContextunsetEntityContext

4、  右键点Package Explorer视图下的EjbLeave,选Lomboz J2EE > Generate EJB Classes

LeaveAccess中添加业务方法

1、  增加一个变量域:UIDGeneratorLocalHome cache_UIDGeneratorLocalHome

详细操作:

EjbLeave/META-INF/ejb-jar.xml
         <ejb-local-ref >
            <ejb-ref-name>ejb/UIDGeneratorLocal</ejb-ref-name>
            <ejb-ref-type>Entity</ejb-ref-type>
            <local-home>com.ssess.cmp.UIDGeneratorLocalHome</local-home>
            <local>com.ssess.cmp.UIDGeneratorLocal</local>
            <ejb-link>UIDGenerator</ejb-link>
         </ejb-local-ref>
它是由LeaveAccessBean.java中的Tag(见下)生成的:
 * @ejb.ejb-ref ejb-name="UIDGenerator"
 *  view-type="local"
 *  ref-name="ejb/UIDGeneratorLocal"

2、  展开Package Explorer视图下的src > com.ssess.session > LeaveAccessBean,右键点LeaveAccessBean > New > Lomboz EJB Method Wizard。指定Method Signaturepublic void ejbCreate() throws javax.ejb.CreateException; Method Type:Create Method; Interface Type: Local Interface;实现ejbCreate方法:cache_UIDGeneratorLocalHome = UIDGeneratorUtil.getLocalHome();

3、  展开Package Explorer视图下的src > com.ssess.session > LeaveAccessBean,右键点LeaveAccessBean > New > Lomboz EJB Method Wizard。指定Method Signaturepublic Integer nextValue(String name); Method Type:Business Method; Interface Type: Local Interface;实现nextValue方法

4、  添加两个class级标签使LeaveAccessUIDGenerator之间建立联系:

@ejb.ejb-ref ejb-name=”UIDGenerator”

  view-type=”local”

  ref-name=”ejb/UIDGeneratorLocal”

这个标签将在ejb-jar.xml中生成部署描述符,使LeaveAccessBean知道它参照了哪个Bean,这个Bean是什么类型以及这个Bean的参照名是什么。

@jboss.ejb-ref-jndi ref-name=”UIDGeneratorLocal”

  jndi-name=”UIDGeneratorLocal”

5、  右键点Package Explorer视图下的EjbLeave,选Lomboz J2EE > Generate EJB Classes。然后改正上面提到的jboss.xml中的错误。

6、  右键点Lomboz J2EE View视图中MyLeave下的EjbLeave模块,选Deploy

创建测试程序

1、  展开Package Explorer下的MyLeave,右键点src > Lomboz EJB Test Client Wizard,在弹出的对话框中指定

Packagecom.ssess.client

NameSessionCMPClient

Ejb Homecom.ssess.session.LeaveAccessHome(必须是远程Home

Ejb Interfacecom.ssess.session.LeaveAccess (必须是远程接口)

Target ServerBEA Weblogic Server v8.1

完成后点“Finish

2、  因为客户端测试程序里无法调用LeaveAccess本地接口中的方法,所以我们去掉LeaveAccessBean.java中所有方法下的view-type=”local”描述符,再执行Generate EJB Classes,将会在本地接口和远程接口中都生成这些方法的引用。

3、  SessionCMPClient.javatestBean()方法中加入语句System.out.println(“test:” + myBean.nextValue(“test”);保存。选中SessionCMPClient后执行菜单Run > Run As > Java Application,最后输出如下:

4、  再次执行,将返回test:2,第三次返回test:3,依次递增。

五.创建CMP----LeaveApp

下面我们创建另一个CMP----LeaveApp,它提供了以下一些接口:获取所有请假记录、创建新的请假记录。

任务

9、  创建一个CMP,包为com.ssess.cmp,名为LeaveApp

10、              实现ejbCreate方法:将所有属性值作为参数传递进来,调用相应的set方法设置值。

11、              增加一个查询方法,指定其querymethod如下:

querySELECT OBJECT(a) FROM LeaveApp as a

method”java.util.Collection findAllLeaveApp()

12、              增加一个业务方法取当前数据:public LeaveAppData getLeaveAppData()

13、              部署LeaveApp

14、              LeaveAccessBean中添加一个业务方法:public ArrayList getAllLeaveApp()

15、              LeaveAccessBean中添加一个业务方法:public void SaveLeaveForm(String,String,String,Date,Integer,String)

16、              增加回调方法setEntityContextunsetEntityContext

17、              创建一个客户端测试程序SessionCMPClient,包为com.ssess.client

18、              运行客户端程序并测试Bean

创建CMP实体Bean----LeaveApp

9、  Package Explorer视图中展开MyLeave节点,右键点src打开快捷菜单,选New > Lomboz EJB Creation Wizard,在打开的EJB创建向导中指定Packagecom.ssess.cmpNameLeaveAppEJB Type选择Container Managed Entity EJB。点Next

10、              打开Container Managed Persistence对话框,指定Schema nameLeaveAppTable namet_leaveapp

11、              Persistent fields下指定FielduidField typejava.lang.IntegerDatabase columnuidSQL typeinteger;然后点Add按钮将在Fields中再添加一项。完成后点“finish”。选中该项,点“Make primary key”按钮将它设置为主键

12、              Persistent fields下指定FieldemployeeNoField typejava.lang.StringDatabase columnemployeenoSQL typevarchar;然后点Add按钮将在Fields中添加一项;

13、              Persistent fields下指定FieldemployeeNameField typejava.lang.StringDatabase columnemployeenameSQL typevarchar;然后点Add按钮将在Fields中添加一项;

14、              Persistent fields下指定FielddepartmentField typejava.lang.StringDatabase columndepartmentSQL typevarchar;然后点Add按钮将在Fields中添加一项;

15、              Persistent fields下指定FieldleaveDateField typejava.util.DateDatabase columnleaveDateSQL typedate;然后点Add按钮将在Fields中添加一项;

16、              Persistent fields下指定FieldleaveDaysField typejava.lang.IntegerDatabase columnleavedaysSQL typeinteger;然后点Add按钮将在Fields中再添加一项。

17、              Persistent fields下指定FieldreasonField typejava.lang.StringDatabase columnreasonSQL typevarchar;然后点Add按钮将在Fields中添加一项;完成后点“finish

18、              删除LeaveAppBean.java中无关的标签后添加@ejb.persistence table-name=”t_leaveapp”

实现ejbCreate方法

1、  调用set方法设置各字段值

增加查询方法

1、  class级添加标签

@ejb.finder

query="SELECT OBJECT(a) FROM LeaveApp as a"

signature="java.util.Collection findAllLeaveApp()"

2、  展开Package Explorer视图MyLeave > src > com.ssess.cmp,右键点LeaveAppBean.javaLomboz J2EE > Add Ejb to Module > EJB[EjbLeave]后确定。将Bean添加到EJB模块中。

3、  右键点EjbLeave,执行Lomboz J2EE > Generate Ejb Classes。生成相关文件。

增加业务方法getLeaveAppData()

1、  右键点LeaveAppBean,选New > Lomboz EJB Method Wizard,指定:

Method Signaturepublic LeaveAppData getLeaveAppData()

Method TypeBusiness Method

Interface TypeLocal Interface

2、  实现LeaveAppData的构造方法实现getLeaveAppData

LeaveAccessBean中添加业务方法getAllLeaveApp

3、  右键点LeaveAccessBean,选New > Lomboz EJB Method Wizard,指定:

Method Signaturepublic java.util.Collection getAllLeaveApp()

Method TypeBusiness Method

Interface TypeLocal Interface

4、  LeaveAccessBean中添加一个变量域private LeaveAppLocalHome cache_LeaveAppLocalHome = null;

5、  LeaveAccessBean.ejbCreate()中添加cache_LeaveAppLocalHome = LeaveAppUtil.getLocalHome();

6、  调用LeaveAppLocalHome.findAllLeaveapp()实现getAllLeaveApp()方法

LeaveAccess添加业务方法SaveLeaveForm

1、  右键点LeaveAccessBean,选New > Lomboz EJB Method Wizard,指定:

Method Signaturepublic void SaveLeaveForm(String employeeNo, String employeeName, String department, Date leaveDate, Integer leaveDays, String reason)

Method TypeBusiness Method

Interface TypeLocal Interface

2、  调用LeaveAppLocalHome.Create()实现SaveLeaveForm方法。

3、  class级添加标签

4、  右键点Package Explorer中的EjbLeave,选Lomboz J2EE > Generate EJB Classes

5、  修改EjbLeaveMETA-INFjboss.xml的标签<ejb-ref><ejb-local-ref>

6、  保存之后右键点Lomboz J2EE View视图中的EjbLeave,选Deploy

测试CMP

1、  为了测试,我们将LeaveAccessBean.javamethod的标签view-type="local"去掉,以便于在远程接口LeaveAccess.java中生成对应方法供客户端测试程序调用。

2、  我们去掉getAllLeaveApp()SaveLeaveForm()方法前的view-type="local"标签后,右键点EjbLeave > Lomboz J2EE > Create EJB Classes

3、  修改jboss.xml中的错误然后发布(Deploy)。

4、  修改SessionCMPClient.java中的testBean()方法:先增加一条记录,然后输出所有记录

5、  选中Package Explorer视图中的SessionCMPClient,点菜单Run > Run as > Java Application。执行输入如下:

6、  再次执行,LeaveForm将输出两条记录,依次递增。

7、  此时的package explorer视图如下:

六.创建web客户端

下面介绍如何在表达层创建web客户端。客户端最常见的两个例子是创建ServletsJSP页,在MVC模式中,Servlets担当ControllerJSP担当View

任务

1、  创建leave.jspLeaveFormLeaveAction

2、  创建display.jspDisplayFormDisplayAction

3、  打包发布

创建leave.jsp

1、  右键点WebLeave > New > Easy Action Accosied with a form,弹出Struts新建窗口,设定Webapp folder/WebLeaveBase package for generationcom.ssess.struts;点“Next

2、  进入Struts Form设置窗口,设定Use caseleave。点Form properties后的Add按钮。

3、  在弹出的Form属性对话框中输入NameemployeeNo,点OK

4、  同上,添加employeeNamedepartmentleaveDateleaveDaysreason等属性。Type取默认的java.lang.StringJSP input type取默认的text即可。点Finish回到Form对话框。

5、  Next进入Struts Action对话框。设置input/leave.jsp,点Next

6、  Forwards后的Add按钮,设定Forward namesuccessForward path/display.do。点OK。完成所有设置。

7、  com.ssess.strutsApplicationResources.properties中添加如下信息:

8、  leave.jsp稍作修改,如下:

9、  完成LeaveAction.java。提交表单时保存请假记录。执行成功后转向显示页。

10、              完成LeaveForm.javavalidate()方法:去掉异常,返回空值return null;

创建display.jsp

1、  右键点WebLeave > New > File,在WebLeave下新建文件style.css

2、  右键点WebLeave > New > Lomboz  JSP Wizard,新建display.jsp页:

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html>

    <head>

       <title><bean:message key="display.title"/></title>

        <link href="<%= request.getContextPath() %>/style.css" rel="stylesheet" type="text/css">

    </head>

    <body>

           <table class="grid">

              <tr>

                  <th class="gridheader"><bean:message key="uid"/></th>

                  <th class="gridheader"><bean:message key="employeeNo"/></th>

                  <th class="gridheader"><bean:message key="employeeName"/></th>

                  <th class="gridheader"><bean:message key="department"/></th>

                  <th class="gridheader"><bean:message key="leaveDate"/></th>

                  <th class="gridheader"><bean:message key="leaveDays"/></th>

                  <th class="gridheader"><bean:message key="reason"/></th>

              </tr>

              <logic:empty name="displayForm" property="lists">

                  <tr>

                     <td class="griddata" colspan="7"><bean:message key="no_record"/></td>

                  </tr>

              </logic:empty>

              <logic:notEmpty name="displayForm" property="lists">

                  <logic:iterate id="item" name="displayForm" property="lists">

                  <tr>

                     <td class="griddata"><bean:write name="item" property="uid"/></td>

                     <td class="griddata"><bean:write name="item" property="employeeNo"/></td>

                     <td class="griddata"><bean:write name="item" property="employeeName"/></td>

                     <td class="griddata"><bean:write name="item" property="department"/></td>                    

                     <td class="griddata"><bean:write name="item" property="leaveDate"/></td>

                     <td class="griddata"><bean:write name="item" property="leaveDays"/></td>

                     <td class="griddata"><bean:write name="item" property="reason"/></td>

                  </tr>

                  </logic:iterate>

              </logic:notEmpty>

           </table>

    <body>

</html>

3、  New > Easy form,设置Use casedisplay,点Form properties后的Add按钮,添加一属性:

4、  去掉(Create JSP) input前的勾,去掉Create the methodsvalidate()reset()方法的勾,然后点Finish完成。

5、  完成之后将在srccom.ssess.struts.form包中生成.displayForm.java,在WEB-INFstruts-config.xml中添加<form-bean>

6、  New > Easy Action,设置Use casedisplayForm namedisplayForm(点Browse…,然后选择)、input/display.jsp(点Browse…,然后选择)

7、  Next,点Forwards后的Add按钮,设定Forward namesuccessForward path/display.jsp。点OK完成后将在com.ssess.struts.action包中生成displayAction.java,在struts-config.xml中生成<action></action>标签。

8、  web.xml中添加如下标签:

    <ejb-local-ref>

        <ejb-ref-name>ejb/LeaveAccessLocal</ejb-ref-name>

        <ejb-ref-type>Session</ejb-ref-type>

        <local-home>com.ssess.session.LeaveAccessLocalHome</local-home>

        <local>com.ssess.session. LeaveAccessLocal</local>

        <ejb-link>LeaveAccess</ejb-link>

    </ejb-local-ref>

9、  index.jsp<body></body>间添加:<a href="leave.jsp">填写请假单</a><br/>。为了显示中文,还得添加:<%@ page contentType="text/html; charset=gb2312" %>

10、             

http://localhost:7001/leave 访问,进行测试。

文章总结

本文首先论述了几种常用开发工具以及他们的配置使用,然后着重介绍了Eclipse与BEA WebLogic Server8.1 和oracle数据库的集成解决方案:如何创建session bean;如何使用实体bean存取数据;如何使用jsp调用EJB提供的接口和方法访问数据,希望能与广大Weblogic开发使用者共同学习,一起进步。在此也一并感谢dev2dev论坛对我们开发者提供的一如既往的技术支持。
 

参考资料:

Lomboz 安装配置说明

http://www.objectlearn.com/support/docs/installation/install.jsp

posted on 2005-10-24 20:59 zjw_albert 阅读(2150) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: