文章摘要:现在很多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://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/
强大的报表生成工具,可将富文本显示在屏幕、打印或转换成流行的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;
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已经配置完毕。
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。。
配置完成。。。
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;
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复杂的业务交互,为表达层提供各种数据访问接口。
1、 创建一个J2EE项目,命名为MyLeave
2、 创建一个无状态会话Bean,包为com.ssess.session,命名为LeaveAccess
3、 部署LeaveAccess Bean
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按钮
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>
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是一个序列生成器,负责为各个应用生成唯一标识符。
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
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标签定义主键
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。
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,它提供了以下一些接口:获取所有请假记录、创建新的请假记录。
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
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”。
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。生成相关文件。
1、 右键点LeaveAppBean,选New > Lomboz EJB Method Wizard,指定:
Method Signature:public LeaveAppData getLeaveAppData()
Method Type:Business Method
Interface Type:Local Interface
2、 实现LeaveAppData的构造方法实现getLeaveAppData
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()方法
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
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客户端。客户端最常见的两个例子是创建Servlets和JSP页,在MVC模式中,Servlets担当Controller、JSP担当View。
1、 创建leave.jsp,LeaveForm及LeaveAction
2、 创建display.jsp,DisplayForm及DisplayAction
3、 打包发布
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;
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、 用
本文首先论述了几种常用开发工具以及他们的配置使用,然后着重介绍了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 阅读(2151)
评论(0) 编辑 收藏