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

文章目录

文章标题:在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/

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

安装并配置环境变量

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

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

PATH和CLASSPATH中

3、  ECLIPSE

eclipse-2.13安装在C:eclipse

4、  Oracle8.1.7

Oracle8.1.7安装在D:oracleOra81

5、  LOMBOZ

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

6、  EASYSTRUTS

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

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.1的Configuration Wizard,新建一个 weblogic service。建立全部使用默认的配置。完成后将在myserver下新建一个mydomain的weblogic service。

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

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.1的Configuration 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,选择其中的Console、Lomboz J2EE View。

3、  配置Eclipse

3.1、选择菜单Window > Preferences > Java > New Project,指定源文件和输出文件的文件名:Source folder name:src;Output 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 Name、serverDirectory、username,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.cmd的classpath加上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重写入SetXXX或getXXX方法,然后在ejb-jar.xml中定义cmp-field就可以。)

      


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

三.创建无状态会话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窗口中,确定Source下Source folders为MyLeave/src(new),output folder为MyLeave/bin,点Next进入Create J2EE Module窗口

4、  在Web Modules下点Add按钮,输入Module Name:WebLeave

5、  在Ejb Modules下点add按钮,输入Module Name:EjbLeave

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、  指定Package为com.ssess.session,NameLeaveAccess,EJB Type为Stateless 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.java、LeaveAccessHome.java、LeaveAccessLocal.java、LeaveAccessLocalHome.java、LeaveAccessSession.java、LeaveAccessUtil.java六个java文件;在EjbLeave > META-INF 下生成ejb-jar.xml、jboss.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-name、description为Leave Application Form。

2、  选中左边Leave Application Form下的myapp.war,修改右边的web-uri为WebLeave.war、context-root为/leave,linked web module选中WebLeave。

3、  选中myBean.jar,修改右边ejb-jar uri为EjbLeave.jar。Linked ejb module 选中EjbLeave。

选择Targeted Servers为BEA 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

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

任务

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

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

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

4、  部署UIDGeneratorBean

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

6、  增加回调方法setEntityContext、unsetEntityContext

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

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

创建CMP实体Bean----UIDGenerator

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

2、  打开Container Managed Persistence对话框,指定Schema name:UIDGenerator;Table name:t_uidgenerator;

3、  在Persistent fields下指定Field:nameField type:java.lang.String;Database column:nameSQL type:varchar;然后点Add按钮将在Fields中添加一项;选中该项,点“Make primary key”按钮

4、  在Persistent fields下指定Field:uidField type:java.lang.Integer;Database column:uidSQL type:integer;然后点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.java、UIDGeneratorCMP.java、UIDGeneratorData.java、UIDGeneratorHome.java、UIDGeneratorLocal.java、UIDGeneratorLocalHome.java、UIDGeneratorUtil.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 Signature:public Integer nextValue()Method Type选Business Method;Interface Type 选Local Interface;然后点按钮“Finish”。

2、  实现nextValue方法:

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

添加回调方法

1、  导入包javax.ejb.EntityContext:import javax.ejb.EntityContext;

2、  增加一个变量域eContext用来存储entity context:private EntityContext eContext;

3、  增加一个方法setEntityContext和unsetEntityContext;

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级标签使LeaveAccess和UIDGenerator之间建立联系:

@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,在弹出的对话框中指定

Package:com.ssess.client

Name:SessionCMPClient

Ejb Home:com.ssess.session.LeaveAccessHome(必须是远程Home)

Ejb Interface:com.ssess.session.LeaveAccess (必须是远程接口)

Target Server:BEA Weblogic Server v8.1

完成后点“Finish

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

3、  在SessionCMPClient.java的testBean()方法中加入语句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、              增加一个查询方法,指定其query与method如下:

query:SELECT 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、              增加回调方法setEntityContext、unsetEntityContext

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

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

创建CMP实体Bean----LeaveApp

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

10、              打开Container Managed Persistence对话框,指定Schema name:LeaveApp;Table name:t_leaveapp;

11、              Persistent fields下指定Field:uidField type:java.lang.Integer;Database column:uidSQL type:integer;然后点Add按钮将在Fields中再添加一项。完成后点“finish”。选中该项,点“Make primary key”按钮将它设置为主键

12、              Persistent fields下指定Field:employeeNo;Field type:java.lang.String;Database column:employeeno;SQL type:varchar;然后点Add按钮将在Fields中添加一项;

13、              Persistent fields下指定Field:employeeName;Field type:java.lang.String;Database column:employeename;SQL type:varchar;然后点Add按钮将在Fields中添加一项;

14、              Persistent fields下指定Field:department;Field type:java.lang.String;Database column:department;SQL type:varchar;然后点Add按钮将在Fields中添加一项;

15、              Persistent fields下指定Field:leaveDate;Field type:java.util.Date;Database column:leaveDate;SQL type:date;然后点Add按钮将在Fields中添加一项;

16、              Persistent fields下指定Field:leaveDays;Field type:java.lang.Integer;Database column:leavedays;SQL type:integer;然后点Add按钮将在Fields中再添加一项。

17、              Persistent fields下指定Field:reason;Field type:java.lang.String;Database column:reason;SQL type:varchar;然后点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.java,Lomboz 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 Signature:public LeaveAppData getLeaveAppData()

Method Type:Business Method

Interface Type:Local Interface

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

在LeaveAccessBean中添加业务方法getAllLeaveApp

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

Method Signature:public java.util.Collection getAllLeaveApp()

Method Type:Business Method

Interface Type:Local 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 Signature:public void SaveLeaveForm(String employeeNo, String employeeName, String department, Date leaveDate, Integer leaveDays, String reason)

Method Type:Business Method

Interface Type:Local Interface

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

3、  在class级添加标签

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

5、  修改EjbLeave下META-INF中jboss.xml的标签<ejb-ref>为<ejb-local-ref>

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

测试CMP

1、  为了测试,我们将LeaveAccessBean.java中method的标签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客户端。客户端最常见的两个例子是创建Servlets和JSP页,在MVC模式中,Servlets担当Controller、JSP担当View

任务

1、  创建leave.jsp,LeaveForm及LeaveAction

2、  创建display.jsp,DisplayForm及DisplayAction

3、  打包发布

创建leave.jsp

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

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

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

4、  同上,添加employeeName、department、leaveDate、leaveDays、reason等属性。Type取默认的java.lang.String,JSP input type取默认的text即可。点Finish回到Form对话框。

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

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

7、  在com.ssess.struts的ApplicationResources.properties中添加如下信息:

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

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

10、              完成LeaveForm.java的validate()方法:去掉异常,返回空值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 case为display,点Form properties后的Add按钮,添加一属性:

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

5、  完成之后将在src中com.ssess.struts.form包中生成.displayForm.java,在WEB-INF的struts-config.xml中添加<form-bean>。

6、  New > Easy Action,设置Use case为display、Form name为displayForm(点Browse…,然后选择)、input/display.jsp(点Browse…,然后选择)

7、  点Next,点Forwards后的Add按钮,设定Forward namesuccess、Forward 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值