基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

jopen 12年前發布 | 68K 次閱讀 OpenEJB EJB Java開發

本文介紹在MyEclipse下進行EJB 3.0開發的方法,J2EE服務器使用Tomcat+EmbededOpenEJB,數據庫使用MySQL。

一、環境配置

本文所用的軟件版本都經過驗證,但所采用的方法不只適用于這些版本,如有興趣,其它版本請另行驗證。需要注意,所有軟件的安裝路徑最好不要出現中文字符、空格以及其它特殊符號等,否則在有些環境下可能會有問題。下面介紹各軟件的版本及其安裝。

1.Java

JDK1.6以上都可以。安裝完成后,可按如下方法配置Java的環境變量:

1)        在環境變量里添加JAVA_HOME變量,其值是安裝的JDK的根目錄路徑。如JAVA_HOME = D:\JavaTools\Java\jdk1.6.0。

2)        繼續添加CLASSPATH變量,其值是JDK的lib目錄路徑。如”CLASSPATH = .;%JAVA_HOME%\lib\”。CLASSPATH中不同的值用分號隔開,.表示當前目錄,%JAVA_HOME%表示將名為 JAVA_HOME的變量的值替換到此處。

3)        再添加PATH變量,其值是JDK的bin目錄路徑。如”PATH = %JAVA_HOME%\bin\”。

配置好環境變量后,可通過在命令行中運行java和javac,簡單地判斷是否配置正確。

2.Tomcat

進行EJB開發,要使用Java企業版服務器。目前,比較常用的J2EE服務器包括JBoss和WebLogic等,但這些服務器都比較重量級,啟 動比較慢,因此在調試啟動時往往非常浪費時間。而Tomcat運行時占用的系統資源小,擴展性好,是目前比較流行的Web 應用服務器。但Tomcat實際上只是一個Servlet容器,不能作為EJB容器。另外,作為開源服務器項目的OpenEJB是一個輕量級的EJB容 器,除了有單獨運行版本以外,還有可能很容易地嵌入到Tomcat中的版本,于是可以選用Tomcat + OpenEJB的組合來部署EJB。

目前Tomcat的最新版本是7.0.22,但經過試驗OpenEJB尚不支持Tomcat 7,因此在本文中選擇6.0.20。

Tomcat6的下載地址是:http://archive.apache.org/dist/tomcat/tomcat-6/。其安裝比較簡單,只需要下載免安裝版本直接解壓縮即可。解壓縮后,需要按如下方法配置Tomcat的環境變量:

1)        在環境變量里添加CATALINA_HOME變量,其值是安裝的Tomcat的根目錄路徑。如CATALINA_HOME = D:\JavaTools\apache-tomcat-6.0.20。

2)        在CLASSPATH變量中添加值,即Tomcat的lib目錄路徑。如”CLASSPATH = ;%CATALINA_HOME%\lib\”。

3)        在PATH變量中添加值,即Tomcat的bin目錄路徑。如”PATH = ;%CATALINA_HOME%\bin\”。

配置好環境變量后,可以通過運行Tomcat的bin目錄中的startup.bat文件,啟動Tomcat服務器。待Tomcat啟動后,在瀏覽器中訪問http://localhost:8080/,如果出現如下界面,則說明Tomcat啟動成功:基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

3.OpenEJB

OpenEJB分為兩種:一種是可以單獨運行的Standalone服務器,另一種是可以嵌入Tomcat的Embedded OpenEJB 3.1.2。

OpenEJB 3.1.2的下載地址是:http://mirror.nexcess.net/apache/openejb/3.1.2/。其安裝也比較簡單,只需要下載openejb.war,放到Tomcat的webapps目錄中即可。裝好后再次啟動Tomcat服務器。待Tomcat啟動后,在瀏覽器中訪問http://localhost:8080/openejb/,會顯示如下界面:基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

然后進入“Testingyour setup”進一步檢查,如果所有選項都是顯示OK,則說明OpenEJB啟動成功。同時注意在上圖所示的界面中,OpenEJB提供一一些工具,例如 OpenEJB JNDI Browser可以用來方便地查看所部署的SessionBean的接口。

關于OpenEJB的詳細安裝說明,可以參考其官網,上面提供了站內搜索功能,可以對想要查找的資料進行搜索。因為介紹OpenEJB的中文資料非常少,在使用OpenEJB時遇到的問題,可以到官網上查詢。

4.MySQL

MySQL是一個開源的小型關系數據庫管理系統,其體積小、速度快并且完全支持SQL語言,被許多中小型網站采用。

MySQL Server的安裝比較簡單,需要注意的是,在安裝過程中,大部分都選擇默認設置,但要將default character set選項設置為Best Support for Multilingualism才能支持中文,同時要設置root用戶的密碼。

為了在Tomcat服務器中部署Web應用能夠使用MySQL,需要將JDBC驅動包放到Tomcat的lib目錄下。本文安裝的MySQL版本號是5.0.27,對應的JDBC驅動包是mysql-connector-java-5.0.4-bin.jar。

MySQL Server安裝成功后,會提供命令行工具,運行后輸入root密碼即可進入。當然,也可以在Windows的命令行中連接MySQL Server,具體方法是執行如下命令:

mysql –u root –p

然后輸入密碼即可MySQL的命令行界面。具體怎么用MySQL,網上資料很多,請自學。

此外,涉及到數據庫的開發,經常需要將數據庫和數據表導出到.sql文件,或者從.sql文件中導入。對于MySQL,導出的方法是在命令行中執行:

mysql dump -uroot xyz > xyz.sql

就可以把名為xyz的數據庫整體導入到當前路徑下名為xyz.sql的文件中。導入的方法是在命令行中先進入.sql文件所在的目錄,然后執行:

mysql -u root -pxyz < xyz.sql

就可以把名為xyz.sql的文件中的所有內容導入到名為xyz的數據庫中。

因為MySQLServer本身只提供了一個命令行界面,因此為了方便操作,可以另外安裝一些圖形界面的MySQL工具,例如MySQL官方提供的MySQL GUI。

5.Ant

Ant是一種跨平臺的、基于Java和XML的build工具,可以很方便的對大的工程進行編譯和測試等。

Ant安裝方便,直接解壓縮即可,本文安裝的Ant版本號是1.7.1。Ant的配置方法如下:

1)        在環境變量里添加ANT_HOME變量,其值是安裝的ANT的根目錄路徑。如ANT_HOME = D:\JavaTools\apache-ant-1.7.1。

2)        在CLASSPATH變量中添加值,即ANT的lib目錄路徑。如”CLASSPATH = ;%ANT_HOME%\lib\”。

3)        在PATH變量中添加值,即ANT的bin目錄路徑。如”PATH = ;%ANT_HOME%\bin\”。

配置好環境變量后,可以在命令行中執行ant,檢查是否能正常使用。

Ant是根據XML格式的build文件進行build的,build.xml的具體內容請自學。

6.MyEclipse

MyEclipse是在Eclipse的基礎上開發的一種IDE,支持多種語言的開放,并包含完整的編碼、調試、測試和發布等功能。 MyEclipse的最新版本是10,功能和插件都很龐大,而只要用MyEclipse6.0就能夠完成作業。下面介紹在MyEclipse6.0的環境 下,如何進行EJB開發。關于如何利用MyEclipse進行Web開發(包括Java Severlet、JSP、)請自學。下面介紹如何進行EJB開發。

首先,新建一個EJB工程,其中J2EESpecification Level選擇Java EE 5.0 - EJB 3.0,如果工程中需要使用數據庫,勾選上Add support for entity beans,否則不選。基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

如果勾選上Addsupport for entity beans,下面需要進一步配置數據庫的連接驅動,點擊Next后進入如下界面:基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

需要在JNDI DataSource中輸入jdbc/mysql,然后點擊Create new Driver,進入如下界面:基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

Driver template選擇MySQL Connection/J,Driver Name需要起個和已有驅動不同的名字,Connection URL的值改為jdbc:mysql://localhost:3306/,User Name和Password中填MySQL的用戶名和密碼,并在DriverJARs中添加MySQL的JDBC驅動包,然后點擊Next。基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

選擇Display theselected schemas,再點擊Add,此時會先嘗試和MySQL連接。連接成功后,會列出當前MySQL中的所有數據庫,這里可以添加我們在該工程中要用的所有 數據庫,最后點擊Finish結束數據庫的連接驅動的配置,并回到上一步設置的界面。基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

此時點擊Update List,選擇需要的Schema,最后點擊Finish,完成工程的建立。

此外,MyEclipse默認Tomcat無法部署EJB工程,下面說明如何在MyEclipse中將新建的EJB工程部署到Tomcat +OpenEJB上。

首先,需要在MyEclipse中配置之前安裝的Tomcat服務器,方法是在菜單 Window->Preference->MyEclipse->ApplicationServers->Tomcat->Tomcat 6.X中(如下圖所示),將Tomcat home directory路徑設為所安裝的Tomcat根目錄的路徑,并將Tomcat 6.x狀態改為 Enable。基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

然后,需要對Tomcat的運行參數進行配置,方法是在菜單Run->Open Run Dialog的MyEclipse ServerApplication中(如下圖所示),新建一個Server Configuration,并將其工程名稱改為我們的EJB工程名稱,將Project也選為該工程,將Server選擇Tomcat 6.x。如果建立的是EJB工程而非Web工程,通常Deploy type要選擇 Packaged Archive。然后點擊Apply,雖然窗口中還是會出現紅叉提示不可以用這種服務器對該工程進行部署,但是可以忽略這個提示,因為這個Tomcat中 是嵌入了OpenEJB這個EJB容器的。最后點擊Run,就開始部署運行了。基于OpenEJB + Tomcat+ MyEclipse + MySQL進行EJB 3.0開發

等服務器啟動完成后,你便可以在瀏覽器中輸入http://localhost:8080/openejb 在其JNDIBrowser里對部署結果進行查看。并且嵌入Tomcat的openejb提供了在瀏覽器中直接對接口進行調用試驗的功能,就像調用Web Service一樣。

二、EJB開發

在OpenEJB的官網上有很多的例子,并提供源代碼下載。下面以簡單的SessionBean與EntityBean的例子稍做介紹。關于EJB本身的使用請查閱相關的資料。

1. SessionBean開發與使用。

SessionBean有Stateless與Stateful兩類。以一個單純的SessionBean為例,它不使用數據庫。因此在創建工程時,把Add support for Entity beans(Add JPA Capabilities)勾掉不選。

請參考示例代碼中的寫法。

(1)    設計與實現:

分別定義接口和實現類,然后以前面所講的方式,在MyEclipse中將工程啟動部署在Tomcat 6.x上。

(2) 調用方法

另外創建一個普通的Java工程,在其BuildPath中引用上面工程中的classes文件夾、以及另外的JavaEE 5 Library,  openejb-client.jar(在安裝了openejb的tomcat的webapps/openejb/lib中),來然后通過編寫代碼調用發 布的Session Bean來對其進行測試。

注意調用接口時,需要提供相應的Provider URL,對于嵌入Tomcat的OpenEJB有:

properties.put("java.naming.provider.url","http://127.0.0.1:8080/openejb/ejb");

2. EntityBean開發與使用

可以在官網上參考例子中的Injectionof EntityManager Example的代碼與介紹。

在代碼中連接數據源的方式有很多種,可以查看OpenEJB官網上的關于Database的一些配置和使用的文檔(比如http://openejb.apache.org/databases.html)。

以下只對MyEclipse中如何配置做一些簡單但不系統的介紹。

在開發EntityBean之前,你應該先完成數據表的設計,并在MySQL中已經創建了相關的數據庫和數據表。

(1) 在創建EJB 3.0工程時,把Add support for Entity beans(Add JPA Capabilities)勾選上。

(2) 關于連接數據庫的問題。首先確認是否將MySQL的驅動包放到Tomcat的lib目錄下。

安裝OpenEJB后,在Tomcat的conf目錄下,會有一個openejb.xml文件。它是用于配置OpenEJB的,而我們主要需要做的工作就是添加一下數據源資源。

關于openejb.xml中的數據源的配置,可以參見以下網址:

http://openejb.apache.org/3.0/common-datasource-configurations.html

具體到添加我們的MySQL數據源,就是要將以下內容添加到openejb.xml中其他的Resource之后:

<Resource id="MySQLDB"type="DataSource">

    #  MySQL example

    #  This connector will not work until youdownload the driver at:

    # http://www.mysql.com/downloads/api-jdbc-stable.html

    JdbcDriver        com.mysql.jdbc.Driver

    JdbcUrl              jdbc:mysql://localhost/your_database

    UserName        your_username

    Password                   your_password

</Resource>

將上面內容中的your_database,your_username, your_password分別改為你所使用的數據庫名稱、用戶名、密碼即可。當然,資源的id也可以改為其他名稱。

然后要在你的EJB 3.0工程的persistence.xml文件中修改persistence-unit結點的內容,修改結果如下所示:要特別注意其中jta-data-source的值,即資源的jdni名稱為java:openejb/Resource/MySQLDB,也就是使用上面openejb.xml中定義的資源。

<persistence-unit name="NewEJBPU" transaction-type="JTA">

<jta-data-source>java:openejb/Resource/MySQLDB</jta-data-source>

<properties>  

<propertyname="openjpa.jdbc.SynchronizeMappings"value="buildSchema(ForeignKeys=true)"/>

</properties>

</persistence-unit>

確保persistence.xml與openejb.xml中的配置的一致性,否則將不能正常連接數據庫。

(3) MyEclipse自動生成實體類代碼(可能需要在此基礎上進行一些修改)

MyEclipse提供了非常便利的根據數據表來自動生成相應EntityBean類及其在數據庫中對相應實體進行增刪改查等操作對應接口的SessionBean類的功能。但是openejb并不一定完全支持所有的EJB注釋,你可能需要一些修改。

具體操作方法就是選中工程的src文件夾,然后點擊右鍵彈出的菜單中,找到MyEclipse->Generate Entities。即可選擇相應的數據表,并為其產生對應的Entity類和相應接口等。當然如果表的數量不多,你也可以選擇手工創建和輸入 EntityBean及其操作對應的SessionBean。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!