在Eclipse+WebLogic下开发J2EE应用程序

转载 2004年11月03日 09:47:00

文章摘要:现在很多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://otn.oracle.com/global/cn/software/products/oracle8i/index.html

大中型关系数据库

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栏目:
image002.jpg
 

image004.jpg

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
image006.jpg
2。填入以下数据:
Name: MyDS (自己随便起)
JNDI: jdbc/OracleDS
 
把后边两项打上勾。

image008.jpg
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就可以。)

     001.gif  


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

image016.jpg

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

image018.jpg

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

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

image019.gif

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

image021.jpg

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>

image022.gif

打包发布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

image024.jpg

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

image025.gif

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

image026.gif

选择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 …>,须删除重复项

image028.gif

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

image029.gif

四.创建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

image030.gif

5、  完成ejbCreate(String name)方法

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

       String name=null;

setName(name);

       setUid(new Integer(0));

       return null;

    }

image032.gif

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”。

image033.gif

2、  实现nextValue方法:

image034.gif

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

添加回调方法

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

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

3、  增加一个方法setEntityContextunsetEntityContext

image036.jpg

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();

image037.gif

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方法

image038.gif

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

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

  view-type=”local”

  ref-name=”ejb/UIDGeneratorLocal”

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

image039.gif

@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

image040.gif

创建测试程序

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

image041.gif

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,最后输出如下:

image042.gif

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方法设置各字段值

image043.gif

增加查询方法

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

image044.gif

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();

image045.gif

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

image047.jpg

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方法。

image049.jpg

3、  class级添加标签

image051.jpg

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

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

image053.jpg

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()方法:先增加一条记录,然后输出所有记录

image055.jpg

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

image057.jpg

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

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

image059.jpg

六.创建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对话框。

image061.jpg

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

image063.jpg

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

image065.jpgimage067.jpg

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

image069.jpg

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

image071.jpg

image073.jpg

image075.jpg

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

image077.jpg

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按钮,添加一属性:

image079.jpg

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

image081.jpg

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

image083.jpg

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

image085.jpg

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

image087.jpg

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

在Eclipse+WebLogic下开发J2EE应用程序

文章摘要:现在很多J2EE应用程序开发模式都是使用Jbuilder+Weblogic+Oracle开发,而Jbuilder由于占用内存大,而对机子配置提出了更高的要求。本文向大家介绍一种方便,并且提供...
  • birdme007
  • birdme007
  • 2006年12月12日 09:45
  • 2612

使用Eclipse开发J2EE项目详解

 第 1 章        Eclipse 简介1.1     选择Eclipse开发J2EE的背景与意义1.1.1背景说明  Eclipse和其它的众多Java IDE一样,可以免费下载。但是,Ec...
  • johnson_yjl
  • johnson_yjl
  • 2006年05月31日 20:22
  • 7766

eclipse+weblogic的J2EE开发环境配置

一、 说明 在大型J2EE项目开发的时候,往往会使用weblogic这样的中间件作为应用服务器,便于数据库连接池、TUXEDO服务以及服务器集群的配 置,但是eclipse本身对于服务器的支持默...
  • wplove1029
  • wplove1029
  • 2014年03月27日 15:00
  • 682

在ubuntu下开发window应用程序

1.  首先要搭建mingw交叉编译环境:     mingw32           sudo apt-get install   mingw32           执行后它会自动安装ming...
  • sourthstar
  • sourthstar
  • 2012年07月11日 11:41
  • 634

关于J2EE开发三层架构

现在开发web大多都是基于MVC的三层架构,三层架构优势什么呢?        三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业...
  • u011569303
  • u011569303
  • 2014年03月28日 16:12
  • 3087

初学者怎样才能开发出高效的J2EE系统

首先,我们需要搞清楚的是,Java和J2EE是两种不同的概念:Java不仅仅是指一种语言,它已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前最主要的两大流派(体系...
  • u014484715
  • u014484715
  • 2014年10月14日 10:26
  • 881

J2EE开发建类dao,modal,service,impl,util包通常是什么意思,什么功能的类放在其下

dao 与数据库的操作,增删改查等方法modal 一般都是javabean对象,例如与数据库的某个表相关联。service 供外部调用,等于对dao,modal等进行了包装。impl 定义的接口uti...
  • cpp_lzth
  • cpp_lzth
  • 2010年03月25日 21:40
  • 1658

J2EE开发的优秀书籍

我所读过的J2EE开发的优秀书籍!2006年08月14日 星期一 19:42以下的五册书籍,笔者推而荐之,笔者自认功利有限,前路绵绵,只愿与各位同仁共勉!  不得不说的当然是《Java编程思想》,我读...
  • zhangyunbo1116
  • zhangyunbo1116
  • 2006年09月13日 17:38
  • 1495

linux环境下搭建 j2ee环境

一、JDK安装(安装在/usr/java目录下) 1、下载:jdk-7-ea-bin-b26-linux-i586-24_apr_2008.bin 地址:http://jx.newhua.com/...
  • airfish20000
  • airfish20000
  • 2017年02月02日 15:23
  • 319

J2EE开发架构大总结

一些主流的架构模式,总结一下: 宏观上讲,我们采用了分层的架构,将软件分为如下的层次:  在具体的实现中,表现层可为Struts/JSF等,业务层、访问层可为JavaBean或EJB等,资源层一般为数...
  • pharaohsprince
  • pharaohsprince
  • 2006年12月11日 22:10
  • 1122
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Eclipse+WebLogic下开发J2EE应用程序
举报原因:
原因补充:

(最多只允许输入30个字)