您的位置:首页 > 编程语言 > Java开发

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

2004-11-03 09:47 519 查看
文章摘要:现在很多J2EE应用程序开发模式都是使用Jbuilder+Weblogic+Oracle开发,而Jbuilder由于占用内存大,而对机子配置提出了更高的要求。本文向大家介绍一种方便,并且提供丰富插件并且免费的可视化编程工具Eclipse.。本文所使用的开发环境为Eclipse+Weblogic+Oracle。文中简要介绍了环境的配置,会话EJB、实体EJB(CMP)的创建过程,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/

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

安装并配置环境变量

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。

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

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

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

建立完成。

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

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

测试:

重新启动WebLogic8.1,在IE的URL中输入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已经配置完毕。

23350
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.zip到c: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



 

 

结构图

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下选type为BEA 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,Name为LeaveAccess,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 module和Linked ejb module无法生成application.xml和build.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;Name:UIDGenerator;EJB Type选择Container Managed Entity EJB。点Next

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

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

4、  在Persistent fields下指定Field:uid;Field type:java.lang.Integer;Database column:uid;SQL 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 Signature:public 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 Signature:public 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;Name:LeaveApp;EJB Type选择Container Managed Entity EJB。点Next

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

11、              在Persistent fields下指定Field:uid;Field type:java.lang.Integer;Database column:uid;SQL 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 name为success、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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息