文章摘要:現在很多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設置了一個默認目錄為空??梢栽?/SPAN>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 閱讀(2154)
評論(0) 編輯 收藏