| 導購 | 订阅 | 在线投稿
分享
 
 
 

JBuilder7+Weblogic7+mysql開發EJB配置

來源:互聯網  2008-06-01 03:09:17  評論

JBuilder7+Weblogic7+mysql 開發EJB的配置

配置JB+WLS可以說是一場惡夢,網上搜了所有可以搜到的貼子,有質量的不過三四個,可以說這幾個

貼子在某些方面寫得確實不錯,筆者也是靠它們的幫助,經過幾天艱苦的摸索才完全成功地整合了JB7+WLS7以

及MYSQL數據庫來開發EJB的。但這幾個貼子都是以前的JB4-6,WLS5-6。1的情況下寫的,有很多選項都不適用

于JB7+WLS7,而且都是單方面的,沒有一個從配置到布署的完整的文檔。

一、安裝不說了。

二、配置:安裝好JB7和WLS7後,應該先配置WLS7,因爲WLS7配置時和JB7無關而JB7要選擇WLS的環境

下面按順序來一步步說明:

我在文檔中用到的例子字段(就是用「如:字段」),那麽以後在要用到這個字段就直接寫成如後的字段

配置MYSQL(別的數據庫都是一樣的)新建一個庫名,如:ejbdb,配置好用戶名和密碼如(root,111111)

把mysql的jdbc(如mysql.jar)放到一個目錄中,一般放在%JAVA_HOME%/lib/下。不過只要不放在軟盤上

總是能找到的。

配置WLS7

假如WLS7安裝在c:\bea下,進入c:\bea\weblogic700\bin目錄,修改startWLS.cmd(注意首先修改這個

文件是因爲有的文檔上說修改c:\bea\user_projects\mydomain\下的startWeblogic.cmd,是不對的。)首先修

改這個文件是這時c:\bea\user_projects\mydomain\下的startWeblogic.cmd還沒有産生,保證你不會改錯。如

果是linux下修改startWLS.sh

找到set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar;

%WL_HOME%\server\lib\weblogic.jar;%CLASSPATH%

加上mysql.jar:成

set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar;

%WL_HOME%\server\lib\weblogic.jar;path\mysql.jar;%CLASSPATH%

存檔退出,在啓動菜單上運行BEA Weblogic platform 7.0 -> domain configuration wizard有的就叫

configuration wizard。

1.Select a template:選擇WLS Domain,Name默認的mydomain

2.Choose Server Type: 第一個

3.Specify directory for "mydomain" domain:C:\bea\user_projects\

4.value Administrative Server Info-Admin Server Name or IP 寫機器的ip,這樣保險,其它默認

5.Configure Managed Server: Server Name:默認爲myserver

Server Listen Address:寫機器的ip .其它默認

6.Create System UserName and Password:寫用戶名和密碼,如:system:aaaaaa

7.Install Server as Windows Servic:這裏問要不要在啓動操作系統時啓動,可根據自己的需用選擇。

8.Install Domain in Windows Start Menu:這裏問要不要在開始菜單添加快捷方式,建議是「Yes」.

這樣在開始菜單中會出現EBA Weblogic Platform 7.0->User projects-my domain->Start Server

如果8選擇了yes,現在就從開始->EBA Weblogic Platform 7.0->User projects-my domain->Start Server啓動

等一會兒,啓動結束後進入:http://localhost:7001/console如果找不到頁面把localhost換成主機名或IP試試

如果不能進入檢查上面的步驟,反正這裏如果不能訪問向下做了,死也要給我訪問到這個頁面。

輸入剛才的用戶名和密碼(system:aaaaaa)進入。

在左邊的目錄樹中選中Services->JDBC->Connection Pools,單擊右側的Configure a new JDBC Connection Pool.

輸入以下信息:

Configuration->General頁:

Name = Mysql Connection Pool

URL = jdbc:mysql://localhost:3306/ejbdb(注意ejbdb是我上面的例子字段,以下都會這樣)

Driver classname = org.gjt.mm.mysql.Driver

Properties :

user=root

password=111111 這兩行是Properties 的內容,就是name=value形式

單擊Create建立連接池。

選擇Targets->Server頁:

將myserver(服務器名稱)移至右側的列表中,但擊單擊Apply

在左邊的目錄樹中選中Services->JDBC->Data Sources(或者TXData Sources)單擊右側的Configure a new JDBC

Connection Pool.,輸入以下信息:

Configuration->General頁:

Name = Mysql Tx Data Source

JNDI Name = ejbPool 這個名字就是你以後要引用的DataSource名稱

Pool Name = Mysql Connection Pool

選中Emulate Two-Phase Commit for non-XA Driver和Row Prefetch Enabled

單擊Create建立數據源。

Targets->Server頁:

將myserver(服務器名稱)移至右側的列表中,但擊單擊Apply,配置完畢

-----------------------------------------------------------------------------------------------------

配置JB7

1. 修改環境變量TEMP和TMP 爲不帶空格的目錄如:c:\winnt\temp,一定要注意,不然發布肯定不成功

2. 啓動Jbuilder7,Tools->Configure libraries->class->Add,找到mysql.jar,OK,OK

3.選擇:Tools->Configure Servers選中左側的Weblogic Application Server 6.x+,選中右邊的

Enable Server

4. 將General->Home Directory設爲WebLogic7的Home Directory如:c:/bea/weblogic700/server,正常

的話Jbuilder7將自動爲你添好其他的項。server parameters不填,在下面的class中用add加上mysql.jar默認已經

加上了c:/bea/weblogin700/server/lib/weblogic.jar和c:/bea/weblogin700/server/lib/weblogic_sp.jar,如果

沒有說明c:/bea/weblogic700/server沒有指定正確。其實c:/bea/weblogin700/server/lib/weblogic_sp.jar是不存

在的,不要管它。只要把mysql.jar加進來。如果2沒有做,是找不到的。

5. 將Custom->JDK Installation Directory設爲 JDK的安裝目錄,如:c:/bea/jdk131_02

6. 將Custom->BEA Home Directory設爲WebLogic7的Home Director,如:c:/bea

7. 將Custom->Domain Directory設爲你的域目錄,如:c:/bea/user_projects/mydomain

8. 添好User name, Password ,Domain name, Server name後,單擊OK退出。

9. 選擇:Tools->Enterprise Setup,單擊CORBA頁上的New, 按下表填寫相應信息:

Name for this configuration = WelLogic

Path for ORB Tools = c:/bea/weblogic700/server

Library for Projects = WebLogic 6.x+ Deploy

IDL compiler command = idlj.exe

Commnad option for output directory = c:\temp(任意目錄,不要有空格)

單擊OK退出。

10.config JDKS中最好保持用jb7自己的JDK1。3。1或用EAB下面的JDK,不要改成另外安裝的JDK1。4,因爲

這個版本中有一些本地方法實現不能和WLS很好地工作,肯定會出錯。

11.選擇Project->Default Project properties 在Path頁的Required libraries中將會看到WebLogic 6.x+

Client和WebLogic 6.x+ Deploy兩項,如果沒有,請檢查以上步驟是否正確。選擇Server頁,單擊Single services

for all service in project,在下拉列表中選擇WebLogic Application Server 6.x+,但擊OK退出。

12。Tools->Database pilot->view->options->Drivers->Add,彈出對話框中輸入org.gjt.mm.mysql.Driver

確定後在下面的Simple URL中輸入mysql://localhost:3306/ejbDB,注意前面沒有"jdbc:"確定.

在File->New彈出new URL,選擇Driver爲剛才加入的org.gjt.mm.mysql.Driver,則URL自動爲顯示爲

jdbc:mysql://localhost:3306/ejbDB,確定,然後點中工具條那個向右下的箭頭(apply)。雙擊左邊剛加入的這個,

輸入用戶名root和密碼111111可是測試數據庫連結是否通過,如果沒有看到下面的表請檢查以上步驟。

---------------------------------------------------------------------------------------------------------

開發EJB

File->New Project生成一個新工程;如:myproject

File->New 選擇Enterprise,選擇EJB2.0 Bean Designer,OK。

按New彈出EJB module Wizard,Name改爲AccountApp,左邊組樹上出現設計器AccountApp,點開前面的加號可以

看到它下面有JDBC 1 Datasources和Security Roles。雙擊EJB設計器AccountApp,右邊顯示設計界面,以後從別的介面

要返回設計界面就雙擊設計器。點擊工具條上第一個圖標,就是象一個谷子一樣的東西上面有一個太陽了,title爲

Create EJB.有四個選項,CMP2.0,BMP,SESSION,MESSAGEp 四種BEAN,本例選BMP,出來Bean設計窗,右邊會有一個

Bean properties框,不過如果你MOUSE動得快它可能會消失了。不要緊,在BEAN的名字上左擊會出來,把BEAN的名字改爲

AccountBean,interface爲local/remote。alway warp primary key爲true,點擊classes and package:

package:改爲你想要放的包名,本例爲:com.fuck.axamn

如果你用默認類名也行,但我喜歡遠程接口中不加Remote,而local接口中加local,而JB正好相反,它是這樣的。

Bean class: com.fuck.axamn.AccountBean

Home interface class: com.fuck.axamn.AccountRemoteHome

local Home interface class: com.fuck.axamn.AccountHome

Remote interface calss: com.fuck.axamn.AccountRemote

Local interface calss: com.fuck.axamn.Account

而本例中我是這樣命名的:

Bean class: com.fuck.axamn.AccountBean

Home interface class: com.fuck.axamn.AccountHome

local Home interface class: com.fuck.axamn.AccountLocalHome

Remote interface calss: com.fuck.axamn.Account

Local interface calss: com.fuck.axamn.AccountLocal

右擊Bean設計窗上BEAN的名字,選view source,好吧,把例子手工敲上去。先不要COPY上去啊,自己敲可以加深理解。如

果最後了出錯了再COPY。

Bean類本身設計好後,點擊左邊設計器上面的package裏面會看到它的接口類,一個一個點擊右邊會出現源碼,一個一個

設計好,要加入的附屬類(比如本例中的AccountExeption)通過右擊package,選Add files/packages,加入一個java文件,

注意要和自動生成的文件在同一目錄。

全部寫好後,右擊工程名,make一下,然後按F9運行。如果WLS沒有啓動JB會自動啓動它的。

沒有問題後右擊設計器,選擇Deploy可以順利發布到WLS上,從http://localhost:7001/console進入後可以看到AccountApp

被發布到WLS中了。

---------------------------------------------------------------------------------------------------------------

測試:

在工程中,File->New->Enterprise->EJB test Client.名稱設爲AccountClient

在左邊組件樹中雙擊AccountClient.java,編輯內容爲本本例提供的內容.

mysql -uroot -p

111111

use ejbdb;

create table accounts (id varchar(60) not null primary key,ownerName varchar(60),double balance(8,2) default 0.00);

make AccountClient.java

run AccountClient.java

____________________________________________________________________

JB7+WLS7+MYSQL 開發CMP

CMP開發其實比BMP更簡單(我說的是操作上的簡單),只要定義好你的業務邏輯,

在實現時其實很快的.但網上竟然找不到一任何用JB開發CMP的例子,在J道上有一篇文章

竟然要收50元才教大家如何用JB開發CMP,太黑了.而且是站長發的,所以在下不敢在那兒

發表這篇文章,不過請大家在別的地方相互轉貼,不要讓那家夥黑了心騙別人的錢.

JB開發CMP,其實方便得很,就是大多數人不知道如何操作,因爲CMP不是從BEAN設計器

的設計界面建立的.而且很多選項沒有別人說明確實不知道選什麽.

前題是根據原來的那一篇配置的文章已經配置好JB7+WLS+MYSQL

現在開始,先定義CMP持久化字段的數據庫,比如我們要做一個Product的BEAN,包括四

個字段:

productID:産品編號(唯一)

name:産品名稱

description:産品說明

basePrice:産品基價

那麽先要定義好數據庫:

mysql -uroot -p

111111

use ejbdb;

create table ProductBean(

productID varchar(60) not null primary key,

name varchar(60),

description varchar(200),

basePrice double(8,2) default 0.00

);

啓動JB7.

File->New Project->輸入工程名 如:myproject2

File->New 選擇Enterprise,選擇EJB2.0 Bean Designer,OK。

按New彈出EJB module Wizard,Name改爲ProductApp,左邊組樹上出現設計器ProductApp

注意這時不要從右邊的設計界面上Create EJB,雙擊設計器ProductApp,在組件樹下面會出現

DataSources,右鍵選擇 Import Schema From Database,彈出Database Schema provider窗口

在All schema前面打勾.

選擇Driver爲 org.gjt.mm.mysql.Driver,下面的url會自動爲你原來設定的URL.注意在

原來設定URL時不應該加jdbc:,要不這兒就會出現jdbc:jdbc:mysql://localhost:3306/ejbdb

如果是這樣去掉一個"jdbc:",輸入username和password(root:111111).把jdni name中的默認

值DataSource改爲你在WLS中配置MYSQL時的JDIN NAME(例子中是ejbPool).點擊OK,如果連結

成功在DataSources下面會出現一個ejbPool,點擊它前面的+號可以看到ejbdb這個庫下面的所

有表,我們現在要把productbean這個表來作爲持久化字段的對應關系,所以右擊productbean

選把第一項Create CMP2.0 Entity Bean.注意Mysql把表名全部設爲小寫了,所以新建的Bean

的名稱爲Productbean,這時右邊的設計界面中産生一個Bean設計窗,名稱爲Productbean,左擊

名稱,右邊出現屬性對話框:

Bean name:改爲ProductBean.

Abstract Schema name:會自動跟著改成ProductBean.

interface:local/remote

always wrap primary key:true

classes and packages:還是的BMP一樣,默認的命名是:

Bean class: com.fuck.axamn.ProductBean

Home interface class: com.fuck.axamn.ProductRemoteHome

local Home interface class: com.fuck.axamn.ProductHome

Remote interface calss: com.fuck.axamn.ProductRemote

Local interface calss: com.fuck.axamn.Product

而本例中我是這樣命名的:

Bean class: com.fuck.axamn.ProductBean

Home interface class: com.fuck.axamn.ProductHome

local Home interface class: com.fuck.axamn.ProductLocalHome

Remote interface calss: com.fuck.axamn.Product

Local interface calss: com.fuck.axamn.ProductLocal

CMP properties中,本例是一個BEAN對應一張表,所以先第一個Single table maping

如果是一個BEAN和多表關關聯選第二項,然後把左邊的primary key和右邊各表對應的字段

用紅線連一下就行了,你只要點primary key的字段拖就會出現紅線.

點擊左邊組件樹上設計器ProductApp上面的package,一級一級點開,看到生成的5個文件

ProductHome.java

ProductLocalHome.java

Product.java

ProductLocal.java

ProductBean.java

一一按本例附件中的文件內容敲進去.完成後雙擊設計器,讓右邊回到BEAN設計界面上,會看

到ProductBean的finder方法有七個,findByPrimaryKey是系統自動生成系統的,這個不要你考慮.

但是其它的6個系統不可能知道你是按什麽條件查找,所以要手工寫入EJB-QL.

在各方法上點擊一下就會在右邊彈出對話框,別有都不動,在最下面的Query內容框中輸入以

下對應的內容

findByName方法:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.name=?1

findByDescription方法:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.description=?1

findByBasePrice方法:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePrice=?1

findExpensiveProducts:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePricefindCheapProducts:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePrice>?1

findAllProducts:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.productID IS NOT NULL

右鍵點擊工程mysproject make,如果輸入沒有錯誤,應該順利編譯.然後按F9運行。如果WLS沒有啓動JB

會自動啓動它的。

沒有問題後右擊設計器,選擇Deploy可以順利發布到WLS上,從http://localhost:7001/console進入

後可以看到ProductApp 被發布到WLS中了。

------------------------------------------------------------------------------------------

測試:

在工程中,File->New->Enterprise->EJB test Client.名稱設爲ProductClient

在左邊組件樹中雙擊ProductClient .java,編輯內容爲本本例提供的內容.

make ProductClient.java

run ProductClient.java

在測試文件中如何查找ProductApp這個EJB呢,其實你在左邊組件樹中雙擊設計器下面ProductBean的

名稱,右邊會顯示出這個BEAN的屬性,Home JDNI NAME和Local JDNI name分別就是遠程和本地的JDNI

命稱,你在測試文件就查找這個名稱,如:

Object objref = ctx.lookup("ProductBeanRemote");

"ProductBeanRemote"就是Home JDNI NAME框中的值.

JBuilder7+Weblogic7+mysql 開發EJB的配置 配置JB+WLS可以說是一場惡夢,網上搜了所有可以搜到的貼子,有質量的不過三四個,可以說這幾個 貼子在某些方面寫得確實不錯,筆者也是靠它們的幫助,經過幾天艱苦的摸索才完全成功地整合了JB7+WLS7以 及MYSQL數據庫來開發EJB的。但這幾個貼子都是以前的JB4-6,WLS5-6。1的情況下寫的,有很多選項都不適用 于JB7+WLS7,而且都是單方面的,沒有一個從配置到布署的完整的文檔。 一、安裝不說了。 二、配置:安裝好JB7和WLS7後,應該先配置WLS7,因爲WLS7配置時和JB7無關而JB7要選擇WLS的環境 下面按順序來一步步說明: 我在文檔中用到的例子字段(就是用「如:字段」),那麽以後在要用到這個字段就直接寫成如後的字段 配置MYSQL(別的數據庫都是一樣的)新建一個庫名,如:ejbdb,配置好用戶名和密碼如(root,111111) 把mysql的jdbc(如mysql.jar)放到一個目錄中,一般放在%JAVA_HOME%/lib/下。不過只要不放在軟盤上 總是能找到的。 配置WLS7 假如WLS7安裝在c:\bea下,進入c:\bea\weblogic700\bin目錄,修改startWLS.cmd(注意首先修改這個 文件是因爲有的文檔上說修改c:\bea\user_projects\mydomain\下的startWeblogic.cmd,是不對的。)首先修 改這個文件是這時c:\bea\user_projects\mydomain\下的startWeblogic.cmd還沒有産生,保證你不會改錯。如 果是linux下修改startWLS.sh 找到set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar; %WL_HOME%\server\lib\weblogic.jar;%CLASSPATH% 加上mysql.jar:成 set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar; %WL_HOME%\server\lib\weblogic.jar;path\mysql.jar;%CLASSPATH% 存檔退出,在啓動菜單上運行BEA Weblogic platform 7.0 -> domain configuration wizard有的就叫 configuration wizard。 1.Select a template:選擇WLS Domain,Name默認的mydomain 2.Choose Server Type: 第一個 3.Specify directory for "mydomain" domain:C:\bea\user_projects\ 4.value Administrative Server Info-Admin Server Name or IP 寫機器的ip,這樣保險,其它默認 5.Configure Managed Server: Server Name:默認爲myserver Server Listen Address:寫機器的ip .其它默認 6.Create System UserName and Password:寫用戶名和密碼,如:system:aaaaaa 7.Install Server as Windows Servic:這裏問要不要在啓動操作系統時啓動,可根據自己的需用選擇。 8.Install Domain in Windows Start Menu:這裏問要不要在開始菜單添加快捷方式,建議是「Yes」. 這樣在開始菜單中會出現EBA Weblogic Platform 7.0->User projects-my domain->Start Server 如果8選擇了yes,現在就從開始->EBA Weblogic Platform 7.0->User projects-my domain->Start Server啓動 等一會兒,啓動結束後進入:http://localhost:7001/console如果找不到頁面把localhost換成主機名或IP試試 如果不能進入檢查上面的步驟,反正這裏如果不能訪問向下做了,死也要給我訪問到這個頁面。 輸入剛才的用戶名和密碼(system:aaaaaa)進入。 在左邊的目錄樹中選中Services->JDBC->Connection Pools,單擊右側的Configure a new JDBC Connection Pool. 輸入以下信息: Configuration->General頁: Name = Mysql Connection Pool URL = jdbc:mysql://localhost:3306/ejbdb(注意ejbdb是我上面的例子字段,以下都會這樣) Driver classname = org.gjt.mm.mysql.Driver Properties : user=root password=111111 這兩行是Properties 的內容,就是name=value形式 單擊Create建立連接池。 選擇Targets->Server頁: 將myserver(服務器名稱)移至右側的列表中,但擊單擊Apply 在左邊的目錄樹中選中Services->JDBC->Data Sources(或者TXData Sources)單擊右側的Configure a new JDBC Connection Pool.,輸入以下信息: Configuration->General頁: Name = Mysql Tx Data Source JNDI Name = ejbPool 這個名字就是你以後要引用的DataSource名稱 Pool Name = Mysql Connection Pool 選中Emulate Two-Phase Commit for non-XA Driver和Row Prefetch Enabled 單擊Create建立數據源。 Targets->Server頁: 將myserver(服務器名稱)移至右側的列表中,但擊單擊Apply,配置完畢 ----------------------------------------------------------------------------------------------------- 配置JB7 1. 修改環境變量TEMP和TMP 爲不帶空格的目錄如:c:\winnt\temp,一定要注意,不然發布肯定不成功 2. 啓動Jbuilder7,Tools->Configure libraries->class->Add,找到mysql.jar,OK,OK 3.選擇:Tools->Configure Servers選中左側的Weblogic Application Server 6.x+,選中右邊的 Enable Server 4. 將General->Home Directory設爲WebLogic7的Home Directory如:c:/bea/weblogic700/server,正常 的話Jbuilder7將自動爲你添好其他的項。server parameters不填,在下面的class中用add加上mysql.jar默認已經 加上了c:/bea/weblogin700/server/lib/weblogic.jar和c:/bea/weblogin700/server/lib/weblogic_sp.jar,如果 沒有說明c:/bea/weblogic700/server沒有指定正確。其實c:/bea/weblogin700/server/lib/weblogic_sp.jar是不存 在的,不要管它。只要把mysql.jar加進來。如果2沒有做,是找不到的。 5. 將Custom->JDK Installation Directory設爲 JDK的安裝目錄,如:c:/bea/jdk131_02 6. 將Custom->BEA Home Directory設爲WebLogic7的Home Director,如:c:/bea 7. 將Custom->Domain Directory設爲你的域目錄,如:c:/bea/user_projects/mydomain 8. 添好User name, Password ,Domain name, Server name後,單擊OK退出。 9. 選擇:Tools->Enterprise Setup,單擊CORBA頁上的New, 按下表填寫相應信息: Name for this configuration = WelLogic Path for ORB Tools = c:/bea/weblogic700/server Library for Projects = WebLogic 6.x+ Deploy IDL compiler command = idlj.exe Commnad option for output directory = c:\temp(任意目錄,不要有空格) 單擊OK退出。 10.config JDKS中最好保持用jb7自己的JDK1。3。1或用EAB下面的JDK,不要改成另外安裝的JDK1。4,因爲 這個版本中有一些本地方法實現不能和WLS很好地工作,肯定會出錯。 11.選擇Project->Default Project properties 在Path頁的Required libraries中將會看到WebLogic 6.x+ Client和WebLogic 6.x+ Deploy兩項,如果沒有,請檢查以上步驟是否正確。選擇Server頁,單擊Single services for all service in project,在下拉列表中選擇WebLogic Application Server 6.x+,但擊OK退出。 12。Tools->Database pilot->view->options->Drivers->Add,彈出對話框中輸入org.gjt.mm.mysql.Driver 確定後在下面的Simple URL中輸入mysql://localhost:3306/ejbDB,注意前面沒有"jdbc:"確定. 在File->New彈出new URL,選擇Driver爲剛才加入的org.gjt.mm.mysql.Driver,則URL自動爲顯示爲 jdbc:mysql://localhost:3306/ejbDB,確定,然後點中工具條那個向右下的箭頭(apply)。雙擊左邊剛加入的這個, 輸入用戶名root和密碼111111可是測試數據庫連結是否通過,如果沒有看到下面的表請檢查以上步驟。 --------------------------------------------------------------------------------------------------------- 開發EJB File->New Project生成一個新工程;如:myproject File->New 選擇Enterprise,選擇EJB2.0 Bean Designer,OK。 按New彈出EJB module Wizard,Name改爲AccountApp,左邊組樹上出現設計器AccountApp,點開前面的加號可以 看到它下面有JDBC 1 Datasources和Security Roles。雙擊EJB設計器AccountApp,右邊顯示設計界面,以後從別的介面 要返回設計界面就雙擊設計器。點擊工具條上第一個圖標,就是象一個谷子一樣的東西上面有一個太陽了,title爲 Create EJB.有四個選項,CMP2.0,BMP,SESSION,MESSAGEp 四種BEAN,本例選BMP,出來Bean設計窗,右邊會有一個 Bean properties框,不過如果你MOUSE動得快它可能會消失了。不要緊,在BEAN的名字上左擊會出來,把BEAN的名字改爲 AccountBean,interface爲local/remote。alway warp primary key爲true,點擊classes and package: package:改爲你想要放的包名,本例爲:com.fuck.axamn 如果你用默認類名也行,但我喜歡遠程接口中不加Remote,而local接口中加local,而JB正好相反,它是這樣的。 Bean class: com.fuck.axamn.AccountBean Home interface class: com.fuck.axamn.AccountRemoteHome local Home interface class: com.fuck.axamn.AccountHome Remote interface calss: com.fuck.axamn.AccountRemote Local interface calss: com.fuck.axamn.Account 而本例中我是這樣命名的: Bean class: com.fuck.axamn.AccountBean Home interface class: com.fuck.axamn.AccountHome local Home interface class: com.fuck.axamn.AccountLocalHome Remote interface calss: com.fuck.axamn.Account Local interface calss: com.fuck.axamn.AccountLocal 右擊Bean設計窗上BEAN的名字,選view source,好吧,把例子手工敲上去。先不要COPY上去啊,自己敲可以加深理解。如 果最後了出錯了再COPY。 Bean類本身設計好後,點擊左邊設計器上面的package裏面會看到它的接口類,一個一個點擊右邊會出現源碼,一個一個 設計好,要加入的附屬類(比如本例中的AccountExeption)通過右擊package,選Add files/packages,加入一個java文件, 注意要和自動生成的文件在同一目錄。 全部寫好後,右擊工程名,make一下,然後按F9運行。如果WLS沒有啓動JB會自動啓動它的。 沒有問題後右擊設計器,選擇Deploy可以順利發布到WLS上,從http://localhost:7001/console進入後可以看到AccountApp 被發布到WLS中了。 --------------------------------------------------------------------------------------------------------------- 測試: 在工程中,File->New->Enterprise->EJB test Client.名稱設爲AccountClient 在左邊組件樹中雙擊AccountClient.java,編輯內容爲本本例提供的內容. mysql -uroot -p 111111 use ejbdb; create table accounts (id varchar(60) not null primary key,ownerName varchar(60),double balance(8,2) default 0.00); make AccountClient.java run AccountClient.java ____________________________________________________________________ JB7+WLS7+MYSQL 開發CMP CMP開發其實比BMP更簡單(我說的是操作上的簡單),只要定義好你的業務邏輯, 在實現時其實很快的.但網上竟然找不到一任何用JB開發CMP的例子,在J道上有一篇文章 竟然要收50元才教大家如何用JB開發CMP,太黑了.而且是站長發的,所以在下不敢在那兒 發表這篇文章,不過請大家在別的地方相互轉貼,不要讓那家夥黑了心騙別人的錢. JB開發CMP,其實方便得很,就是大多數人不知道如何操作,因爲CMP不是從BEAN設計器 的設計界面建立的.而且很多選項沒有別人說明確實不知道選什麽. 前題是根據原來的那一篇配置的文章已經配置好JB7+WLS+MYSQL 現在開始,先定義CMP持久化字段的數據庫,比如我們要做一個Product的BEAN,包括四 個字段: productID:産品編號(唯一) name:産品名稱 description:産品說明 basePrice:産品基價 那麽先要定義好數據庫: mysql -uroot -p 111111 use ejbdb; create table ProductBean( productID varchar(60) not null primary key, name varchar(60), description varchar(200), basePrice double(8,2) default 0.00 ); 啓動JB7. File->New Project->輸入工程名 如:myproject2 File->New 選擇Enterprise,選擇EJB2.0 Bean Designer,OK。 按New彈出EJB module Wizard,Name改爲ProductApp,左邊組樹上出現設計器ProductApp 注意這時不要從右邊的設計界面上Create EJB,雙擊設計器ProductApp,在組件樹下面會出現 DataSources,右鍵選擇 Import Schema From Database,彈出Database Schema provider窗口 在All schema前面打勾. 選擇Driver爲 org.gjt.mm.mysql.Driver,下面的url會自動爲你原來設定的URL.注意在 原來設定URL時不應該加jdbc:,要不這兒就會出現jdbc:jdbc:mysql://localhost:3306/ejbdb 如果是這樣去掉一個"jdbc:",輸入username和password(root:111111).把jdni name中的默認 值DataSource改爲你在WLS中配置MYSQL時的JDIN NAME(例子中是ejbPool).點擊OK,如果連結 成功在DataSources下面會出現一個ejbPool,點擊它前面的+號可以看到ejbdb這個庫下面的所 有表,我們現在要把productbean這個表來作爲持久化字段的對應關系,所以右擊productbean 選把第一項Create CMP2.0 Entity Bean.注意Mysql把表名全部設爲小寫了,所以新建的Bean 的名稱爲Productbean,這時右邊的設計界面中産生一個Bean設計窗,名稱爲Productbean,左擊 名稱,右邊出現屬性對話框: Bean name:改爲ProductBean. Abstract Schema name:會自動跟著改成ProductBean. interface:local/remote always wrap primary key:true classes and packages:還是的BMP一樣,默認的命名是: Bean class: com.fuck.axamn.ProductBean Home interface class: com.fuck.axamn.ProductRemoteHome local Home interface class: com.fuck.axamn.ProductHome Remote interface calss: com.fuck.axamn.ProductRemote Local interface calss: com.fuck.axamn.Product 而本例中我是這樣命名的: Bean class: com.fuck.axamn.ProductBean Home interface class: com.fuck.axamn.ProductHome local Home interface class: com.fuck.axamn.ProductLocalHome Remote interface calss: com.fuck.axamn.Product Local interface calss: com.fuck.axamn.ProductLocal CMP properties中,本例是一個BEAN對應一張表,所以先第一個Single table maping 如果是一個BEAN和多表關關聯選第二項,然後把左邊的primary key和右邊各表對應的字段 用紅線連一下就行了,你只要點primary key的字段拖就會出現紅線. 點擊左邊組件樹上設計器ProductApp上面的package,一級一級點開,看到生成的5個文件 ProductHome.java ProductLocalHome.java Product.java ProductLocal.java ProductBean.java 一一按本例附件中的文件內容敲進去.完成後雙擊設計器,讓右邊回到BEAN設計界面上,會看 到ProductBean的finder方法有七個,findByPrimaryKey是系統自動生成系統的,這個不要你考慮. 但是其它的6個系統不可能知道你是按什麽條件查找,所以要手工寫入EJB-QL. 在各方法上點擊一下就會在右邊彈出對話框,別有都不動,在最下面的Query內容框中輸入以 下對應的內容 findByName方法:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.name=?1 findByDescription方法:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.description=?1 findByBasePrice方法:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePrice=?1 findExpensiveProducts:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePricefindCheapProducts:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.basePrice>?1 findAllProducts:SELECT OBJECT(p) FROM ProductBean AS p WHERE p.productID IS NOT NULL 右鍵點擊工程mysproject make,如果輸入沒有錯誤,應該順利編譯.然後按F9運行。如果WLS沒有啓動JB 會自動啓動它的。 沒有問題後右擊設計器,選擇Deploy可以順利發布到WLS上,從http://localhost:7001/console進入 後可以看到ProductApp 被發布到WLS中了。 ------------------------------------------------------------------------------------------ 測試: 在工程中,File->New->Enterprise->EJB test Client.名稱設爲ProductClient 在左邊組件樹中雙擊ProductClient .java,編輯內容爲本本例提供的內容. make ProductClient.java run ProductClient.java 在測試文件中如何查找ProductApp這個EJB呢,其實你在左邊組件樹中雙擊設計器下面ProductBean的 名稱,右邊會顯示出這個BEAN的屬性,Home JDNI NAME和Local JDNI name分別就是遠程和本地的JDNI 命稱,你在測試文件就查找這個名稱,如: Object objref = ctx.lookup("ProductBeanRemote"); "ProductBeanRemote"就是Home JDNI NAME框中的值.
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有