<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-71  評論-4  文章-0  trackbacks-0

    文章摘要:現在很多J2EE應用程序開發模式都是使用Jbuilder+Weblogic+Oracle開發,而Jbuilder由于占用內存大,而對機子配置提出了更高的要求。本文向大家介紹一種方便,并且提供豐富插件并且免費的可視化編程工具Eclipse.。本文所使用的開發環境為Eclipse+Weblogic+Oracle。文中簡要介紹了環境的配置,會話EJB、實體EJBCMP)的創建過程,Struts框架的使用方法等。

    文章目錄

    文章標題:在Eclipse+WebLogic下開發J2EE應用程序...

    文章目錄:...

    正文部分:...

    一.環境準備...

    開發工具與插件介紹...

    安裝并配置環境變量...

    Weblogic 8.1的配置與使用...

    Eclipse的配置與使用...

    Oracle的配置與使用...

    . 實例概述...

    數據庫...

    結構圖...

    三.創建無狀態會話Bean.

    工作...

    創建J2EE項目...

    創建Stateless Session Bean.

    打包發布EarLeave.

    四.創建CMP----UIDGenerator.

    任務...

    創建CMP實體Bean----UIDGenerator.

    添加業務方法nextValue.

    添加回調方法...

    在LeaveAccess中添加業務方法...

    創建測試程序...

    五.創建CMP----LeaveApp.

    任務...

    創建CMP實體Bean----LeaveApp.

    實現ejbCreate方法...

    增加查詢方法...

    增加業務方法getLeaveAppData().

    在LeaveAccessBean中添加業務方法getAllLeaveApp.

    為LeaveAccess添加業務方法SaveLeaveForm.

    測試CMP.

    六.創建web客戶端...

    任務..

    創建leave.jsp.

    創建display.jsp.

    文章總結...

    正文部分:

    一.環境準備

    開發工具與插件介紹

    1、  JDK

    j2se v1.4.2  http://java.sun.com/j2se/downloads.html

    2、  Weblogic

    Weblogic8.1 http://dev2dev.bea.com.cn/

    應用服務器(APS),提供J2EE組件運行所用的J2EE容器和優秀的集成開發環境。

    3、  ECLIPSE

    eclipse v2.13 http://www.eclipse.org/

    j2ee集成開發環境。

    注意:不要下3.x版的,因為 EasyStruts plugin 是在 Eclipse 2.x 環境下編寫的而不是3.x. Eclipse 3.x為他們的 plugins使用了不同的格式和 APIs . 所以不能兼用。

    4、  Oracle

    Oracle8.1.7 http://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、HTMLXLS、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

    安裝后,會直接加入環境變量

    PATHCLASSPATH

    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拷貝到eclipseplugins目錄

    7、  STRUTS

    jakarta-struts-1.1解壓到C:jakarta-struts-1.1

    設置環境變量STRUTS_HOME=C:jakarta-struts-1.1

    CLASSPATH=%CLASSPATH%;%STRUTS_HOME%libstruts.jar;

    8、  JASPERREPORTS

    jasperreports-0.5.0-project解壓到C:jasperreports-0.5.0

    設置環境變量CLASSPATH=%CLASSPATH%;

    C:jasperreports-0.5.0distjasperreports-0.5.0.jar;C:jasperreports-0.5.0libservlet.jar;

    Weblogic 8.1的配置與使用

    1。如果已經設置了環境變量,則啟動WebLogic8.1Configuration Wizard,新建一個 weblogic service。建立全部使用默認的配置。完成后將在myserver下新建一個mydomainweblogic service。

    2。啟動WebLogic8.1,并打開一個IE,在URL中輸入http://localhost:7001/console,對新建service的屬性進行配置。輸入建立weblogic service注冊的usernamepassword。

    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

    建立完成。

    52再次啟動WebLogic8.1Configuration Wizard,選擇extend an existing weblogic configuration,點下一步。選擇先前建立的weblogic service,點下一步。選擇DefaultWebApp,點下一步,這樣就建立了一個默認的Web應用。

    6。通過monitoring標簽可以查看Application的資源的情況。

    測試:

    重新啟動WebLogic8.1,在IEURL中輸入http://localhost:7001/DefaultWebApp/index.html。

    weblogic81 的目錄C:eauser_projectsdomainsmydomain_server(我建立的相應WebServer目錄)下找到config.xml文件,在文件中找到

    IdentityAndTrustLocations="KeyStores" ListenPort="7002" Name="myserver"/>

    這一句。在其下面添加一行:

    <WebServer DefaultWebApp="DefaultWebApp" Name="myserver"/>

    保存。

    就為這個Application設置了一個默認目錄為空??梢栽?/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。。

    配置完成。。。

    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 NameserverDirectory、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.cmdclasspath加上oracle驅動,以便于weblogic8.1連接池的配置。

    注意:Oracle 8.17與 奔騰 四 1。7G的CUP會有沖突,出現無法正常安裝的問題。這時可以將Oracle 8.17的安裝文件拷到硬盤上,再在安裝文件夾中搜索“SYMCJIT.DLL”的文件,應該可以找到2個,刪除掉即可正常安裝。

    .實例概述

    數據庫

    1、  數據庫orcl中有兩個表,它們由CMP自動生成。其中t_uidgenerator有兩個字段:NAME代表應用名、UID代表此應用的唯一標識號;t_leaveapp有如下七個字段,分別代表請假單的標識號、員工編號、員工名、部門、請假日期、請假天數、請假原因。

          t_uidgenerator                             t_leaveapp

    圓柱形: NAME VARCHAR (PK)
UID INTEGER
圓柱形: UID INTEGER (PK)
EMPLOYEENO VARCHAR
EMPLOYEENAME VARCHAR
DEPARTMENT VARCHAR
LEAVEDATE DATE
LEAVEDAYS INTEGER
REASON VARCHAR

     

     

    結構圖

    1、  leaveApp結構圖:客戶端通過web請求Servlets(或JSP),servlet調用Session EJB ----LeaveAccess提供的方法訪問數據,而數據的存取由對應的CMP EJB來實現。(注:CMP是由EJB容器自動完成對數據庫的操作,你所有做的,就是在實體bean重寫入SetXXXgetXXX方法,然后在ejb-jar.xml中定義cmp-field就可以。)

          


    2         leaveAccessBean是一個Session EJB,它封裝了與實體Bean UIDGeneratorLeaveApp復雜的業務交互,為表達層提供各種數據訪問接口。

    三.創建無狀態會話Bean

    工作

    1、  創建一個J2EE項目,命名為MyLeave

    2、  創建一個無狀態會話Bean,包為com.ssess.session,命名為LeaveAccess

    3、  部署LeaveAccess Bean

    創建J2EE項目

    1、  點菜單File > New > Lomboz J2EE Project,將彈出一個創建向導窗口。

    2、  Project name后輸入項目名MyLeave,點Next

    3、  Java Settings窗口中,確定SourceSource foldersMyLeave/src(new),output folderMyLeave/bin,點Next進入Create J2EE Module窗口

    4、  Web Modules下點Add按鈕,輸入Module NameWebLeave

    5、  Ejb Modules下點add按鈕,輸入Module NameEjbLeave

    6、  Targeted Servers下選typeBEA Weblogic Server v8.1 Add按鈕,將會在Targeted Servers框中添加一個BEA Weblogic Server v8.1的服務器

    7、  完成后點Finish按鈕

    創建Stateless Session Bean

    1、  選菜單File > New > Lomboz EJB Creation Wizard,將打開Create EJB窗口

    2、  指定Packagecom.ssess.sessionNameLeaveAccessEJB TypeStateless Session EJB

    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.javaLeaveAccessLocalHome.java、LeaveAccessSession.javaLeaveAccessUtil.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-namedescriptionLeave Application Form

    2、  選中左邊Leave Application Form下的myapp.war,修改右邊的web-uriWebLeave.war、context-root/leave,linked web module選中WebLeave。

    3、  選中myBean.jar,修改右邊ejb-jar uriEjbLeave.jarLinked ejb module 選中EjbLeave。

    選擇Targeted ServersBEA Weblogic Server v8.1,完成設置。將在MyLeave下生成EarLeave模塊。打開META-INF下的build.xml,刪除<target name=”modules” depends=”init”>下的重復項。(如果我們創建ear模塊時不設置Linked web moduleLinked ejb module無法生成application.xmlbuild.xml,設置后build.xml中出現重復項<ant …>,須刪除重復項

    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、  增加回調方法setEntityContextunsetEntityContext

    7、  創建一個客戶端測試程序SessionCMPClient,包為com.ssess.client

    8、  運行客戶端程序并測試Bean

    創建CMP實體Bean----UIDGenerator

    1、  Package Explorer視圖中展開MyLeave節點,右鍵點src打開快捷菜單,選New > Lomboz EJB Creation Wizard,在打開的EJB創建向導中指定Packagecom.ssess.cmp;NameUIDGenerator;EJB Type選擇Container Managed Entity EJB。點Next

    2、  打開Container Managed Persistence對話框,指定Schema nameUIDGenerator;Table namet_uidgenerator;

    3、  Persistent fields下指定FieldnameField typejava.lang.String;Database columnname;SQL typevarchar;然后點Add按鈕將在Fields中添加一項;選中該項,點“Make primary key”按鈕

    4、  Persistent fields下指定Fielduid;Field typejava.lang.IntegerDatabase columnuid;SQL typeinteger;然后點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.javaUIDGeneratorLocal.javaUIDGeneratorLocalHome.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 Signaturepublic Integer nextValue()Method TypeBusiness MethodInterface Type Local Interface;然后點按鈕“Finish”。

    2、  實現nextValue方法:

    3、  右鍵點Package Explorer視圖下的EjbLeave,選Lomboz J2EE > Generate EJB Classes。

    添加回調方法

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

    2、  增加一個變量域eContext用來存儲entity contextprivate EntityContext eContext;

    3、  增加一個方法setEntityContextunsetEntityContext

    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級標簽使LeaveAccessUIDGenerator之間建立聯系:

    @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,在彈出的對話框中指定

    Packagecom.ssess.client

    NameSessionCMPClient

    Ejb Homecom.ssess.session.LeaveAccessHome(必須是遠程Home

    Ejb Interfacecom.ssess.session.LeaveAccess (必須是遠程接口)

    Target ServerBEA Weblogic Server v8.1

    完成后點“Finish

    2、  因為客戶端測試程序里無法調用LeaveAccess本地接口中的方法,所以我們去掉LeaveAccessBean.java中所有方法下的view-type=”local”描述符,再執行Generate EJB Classes,將會在本地接口和遠程接口中都生成這些方法的引用。

    3、  SessionCMPClient.javatestBean()方法中加入語句System.out.println(“test:” + myBean.nextValue(“test”);保存。選中SessionCMPClient后執行菜單Run > Run As > Java Application,最后輸出如下:

    4、  再次執行,將返回test:2,第三次返回test:3,依次遞增。

    五.創建CMP----LeaveApp

    下面我們創建另一個CMP----LeaveApp,它提供了以下一些接口:獲取所有請假記錄、創建新的請假記錄。

    任務

    9、  創建一個CMP,包為com.ssess.cmp,名為LeaveApp

    10、              實現ejbCreate方法:將所有屬性值作為參數傳遞進來,調用相應的set方法設置值。

    11、              增加一個查詢方法,指定其querymethod如下:

    querySELECT OBJECT(a) FROM LeaveApp as a

    method”java.util.Collection findAllLeaveApp()

    12、              增加一個業務方法取當前數據:public LeaveAppData getLeaveAppData()

    13、              部署LeaveApp

    14、              LeaveAccessBean中添加一個業務方法:public ArrayList getAllLeaveApp()

    15、              LeaveAccessBean中添加一個業務方法:public void SaveLeaveForm(String,String,String,Date,Integer,String)

    16、              增加回調方法setEntityContext、unsetEntityContext

    17、              創建一個客戶端測試程序SessionCMPClient,包為com.ssess.client

    18、              運行客戶端程序并測試Bean

    創建CMP實體Bean----LeaveApp

    9、  Package Explorer視圖中展開MyLeave節點,右鍵點src打開快捷菜單,選New > Lomboz EJB Creation Wizard,在打開的EJB創建向導中指定Packagecom.ssess.cmpNameLeaveApp;EJB Type選擇Container Managed Entity EJB。點Next

    10、              打開Container Managed Persistence對話框,指定Schema nameLeaveApp;Table namet_leaveapp;

    11、              Persistent fields下指定FielduidField typejava.lang.Integer;Database columnuid;SQL typeinteger;然后點Add按鈕將在Fields中再添加一項。完成后點“finish”。選中該項,點“Make primary key”按鈕將它設置為主鍵

    12、              Persistent fields下指定FieldemployeeNo;Field typejava.lang.String;Database columnemployeeno;SQL typevarchar;然后點Add按鈕將在Fields中添加一項;

    13、              Persistent fields下指定FieldemployeeName;Field typejava.lang.String;Database columnemployeename;SQL typevarchar;然后點Add按鈕將在Fields中添加一項;

    14、              Persistent fields下指定Fielddepartment;Field typejava.lang.String;Database columndepartment;SQL typevarchar;然后點Add按鈕將在Fields中添加一項;

    15、              Persistent fields下指定FieldleaveDate;Field typejava.util.Date;Database columnleaveDate;SQL typedate;然后點Add按鈕將在Fields中添加一項;

    16、              Persistent fields下指定FieldleaveDays;Field typejava.lang.Integer;Database columnleavedays;SQL typeinteger;然后點Add按鈕將在Fields中再添加一項。

    17、              Persistent fields下指定FieldreasonField typejava.lang.StringDatabase columnreason;SQL typevarchar;然后點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 Signaturepublic LeaveAppData getLeaveAppData()

    Method TypeBusiness Method

    Interface TypeLocal Interface

    2、  實現LeaveAppData的構造方法實現getLeaveAppData

    LeaveAccessBean中添加業務方法getAllLeaveApp

    3、  右鍵點LeaveAccessBean,選New > Lomboz EJB Method Wizard,指定:

    Method Signaturepublic java.util.Collection getAllLeaveApp()

    Method TypeBusiness Method

    Interface TypeLocal Interface

    4、  LeaveAccessBean中添加一個變量域private LeaveAppLocalHome cache_LeaveAppLocalHome = null;

    5、  LeaveAccessBean.ejbCreate()中添加cache_LeaveAppLocalHome = LeaveAppUtil.getLocalHome();

    6、  調用LeaveAppLocalHome.findAllLeaveapp()實現getAllLeaveApp()方法

    LeaveAccess添加業務方法SaveLeaveForm

    1、  右鍵點LeaveAccessBean,選New > Lomboz EJB Method Wizard,指定:

    Method Signaturepublic void SaveLeaveForm(String employeeNo, String employeeName, String department, Date leaveDate, Integer leaveDays, String reason)

    Method TypeBusiness Method

    Interface TypeLocal Interface

    2、  調用LeaveAppLocalHome.Create()實現SaveLeaveForm方法。

    3、  class級添加標簽

    4、  右鍵點Package Explorer中的EjbLeave,選Lomboz J2EE > Generate EJB Classes

    5、  修改EjbLeaveMETA-INFjboss.xml的標簽<ejb-ref><ejb-local-ref>

    6、  保存之后右鍵點Lomboz J2EE View視圖中的EjbLeave,選Deploy

    測試CMP

    1、  為了測試,我們將LeaveAccessBean.javamethod的標簽view-type="local"去掉,以便于在遠程接口LeaveAccess.java中生成對應方法供客戶端測試程序調用。

    2、  我們去掉getAllLeaveApp()SaveLeaveForm()方法前的view-type="local"標簽后,右鍵點EjbLeave > Lomboz J2EE > Create EJB Classes

    3、  修改jboss.xml中的錯誤然后發布(Deploy)。

    4、  修改SessionCMPClient.java中的testBean()方法:先增加一條記錄,然后輸出所有記錄

    5、  選中Package Explorer視圖中的SessionCMPClient,點菜單Run > Run as > Java Application。執行輸入如下:

    6、  再次執行,LeaveForm將輸出兩條記錄,依次遞增。

    7、  此時的package explorer視圖如下:

    六.創建web客戶端

    下面介紹如何在表達層創建web客戶端。客戶端最常見的兩個例子是創建ServletsJSP頁,在MVC模式中,Servlets擔當ControllerJSP擔當View。

    任務

    1、  創建leave.jsp,LeaveFormLeaveAction

    2、  創建display.jsp,DisplayFormDisplayAction

    3、  打包發布

    創建leave.jsp

    1、  右鍵點WebLeave > New > Easy Action Accosied with a form,彈出Struts新建窗口,設定Webapp folder/WebLeave、Base package for generationcom.ssess.struts;點“Next

    2、  進入Struts Form設置窗口,設定Use caseleave。點Form properties后的Add按鈕。

    3、  在彈出的Form屬性對話框中輸入NameemployeeNo,點OK

    4、  同上,添加employeeName、departmentleaveDate、leaveDaysreason等屬性。Type取默認的java.lang.StringJSP input type取默認的text即可。點Finish回到Form對話框。

    5、  Next進入Struts Action對話框。設置input/leave.jsp,點Next

    6、  Forwards后的Add按鈕,設定Forward namesuccess、Forward path/display.do。點OK。完成所有設置。

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

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

    9、  完成LeaveAction.java。提交表單時保存請假記錄。執行成功后轉向顯示頁。

    10、              完成LeaveForm.javavalidate()方法:去掉異常,返回空值return null;

    創建display.jsp

    1、  右鍵點WebLeave > New > File,在WebLeave下新建文件style.css

    2、  右鍵點WebLeave > New > Lomboz  JSP Wizard,新建display.jsp頁:

    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

    <html>

        <head>

           <title><bean:message key="display.title"/></title>

            <link href="<%= request.getContextPath() %>/style.css" rel="stylesheet" type="text/css">

        </head>

        <body>

               <table class="grid">

                  <tr>

                      <th class="gridheader"><bean:message key="uid"/></th>

                      <th class="gridheader"><bean:message key="employeeNo"/></th>

                      <th class="gridheader"><bean:message key="employeeName"/></th>

                      <th class="gridheader"><bean:message key="department"/></th>

                      <th class="gridheader"><bean:message key="leaveDate"/></th>

                      <th class="gridheader"><bean:message key="leaveDays"/></th>

                      <th class="gridheader"><bean:message key="reason"/></th>

                  </tr>

                  <logic:empty name="displayForm" property="lists">

                      <tr>

                         <td class="griddata" colspan="7"><bean:message key="no_record"/></td>

                      </tr>

                  </logic:empty>

                  <logic:notEmpty name="displayForm" property="lists">

                      <logic:iterate id="item" name="displayForm" property="lists">

                      <tr>

                         <td class="griddata"><bean:write name="item" property="uid"/></td>

                         <td class="griddata"><bean:write name="item" property="employeeNo"/></td>

                         <td class="griddata"><bean:write name="item" property="employeeName"/></td>

                         <td class="griddata"><bean:write name="item" property="department"/></td>                    

                         <td class="griddata"><bean:write name="item" property="leaveDate"/></td>

                         <td class="griddata"><bean:write name="item" property="leaveDays"/></td>

                         <td class="griddata"><bean:write name="item" property="reason"/></td>

                      </tr>

                      </logic:iterate>

                  </logic:notEmpty>

               </table>

        <body>

    </html>

    3、  New > Easy form,設置Use casedisplay,點Form properties后的Add按鈕,添加一屬性:

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

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

    6、  New > Easy Action,設置Use casedisplay、Form namedisplayForm(點Browse…,然后選擇)、input/display.jsp(點Browse…,然后選擇)

    7、  Next,點Forwards后的Add按鈕,設定Forward namesuccessForward 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

    posted on 2005-10-24 20:59 zjw_albert 閱讀(2154) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩免费无码一区二区视频| 最近新韩国日本免费观看| 成人毛片免费观看视频大全| 亚洲综合校园春色| 99热在线精品免费全部my| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲免费在线观看视频| 亚洲乱码中文论理电影| 成年轻人网站色免费看| 欧美色欧美亚洲另类二区| 可以免费观看的一级毛片| 一进一出60分钟免费视频| 亚洲色欲色欲www在线丝 | 亚洲精品麻豆av| 人人爽人人爽人人片A免费 | 久久久受www免费人成| 国内精品久久久久久久亚洲| 你懂的免费在线观看| 亚洲国产精品免费视频| 无码国产精品一区二区免费式直播| 亚洲夂夂婷婷色拍WW47 | 亚洲精品国产精品乱码不99| 国产成人久久AV免费| 亚洲成人福利网站| 国产男女猛烈无遮挡免费视频| eeuss免费影院| 亚洲国产精品线在线观看| 国产va精品免费观看| 日本一区二区三区在线视频观看免费 | 国产亚洲欧洲精品| 精品久久久久久久久免费影院| 亚洲avav天堂av在线网毛片| 国产亚洲精品激情都市| 日本免费大黄在线观看| 亚洲人成欧美中文字幕| 日日噜噜噜噜夜夜爽亚洲精品| 久久精品免费一区二区| 免费大片av手机看片高清| 亚洲性天天干天天摸| 国产又黄又爽又猛的免费视频播放 | 亚洲黄色在线观看视频|