溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JBuilder7+Weblogic7+mysql開(kāi)發(fā)EJB如何配置

發(fā)布時(shí)間:2021-11-06 11:51:55 來(lái)源:億速云 閱讀:141 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹了JBuilder7+Weblogic7+mysql開(kāi)發(fā)EJB如何配置,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

配置JB+WLS可以說(shuō)是一場(chǎng)惡夢(mèng),網(wǎng)上搜了所有可以搜到的貼子,有質(zhì)量的不過(guò)三四個(gè),可以說(shuō)這幾個(gè)
貼子在某些方面寫(xiě)得確實(shí)不錯(cuò),筆者也是靠它們的幫助,經(jīng)過(guò)幾天艱苦的摸索才完全成功地整合了JB7+WLS7以
及MYSQL數(shù)據(jù)庫(kù)來(lái)開(kāi)發(fā)EJB的。但這幾個(gè)貼子都是以前的JB4-6,WLS5-6。1的情況下寫(xiě)的,有很多選項(xiàng)都不適用
于JB7+WLS7,而且都是單方面的,沒(méi)有一個(gè)從配置到布署的完整的文檔。

一、安裝不說(shuō)了。
二、配置:安裝好JB7和WLS7后,應(yīng)該先配置WLS7,因?yàn)閃LS7配置時(shí)和JB7無(wú)關(guān)而JB7要選擇WLS的環(huán)境
下面按順序來(lái)一步步說(shuō)明:

我在文檔中用到的例子字段(就是用“如:字段”),那么以后在要用到這個(gè)字段就直接寫(xiě)成如后的字段
配置MYSQL(別的數(shù)據(jù)庫(kù)都是一樣的)新建一個(gè)庫(kù)名,如:ejbdb,配置好用戶(hù)名和密碼如(root,111111)
把mysql的jdbc(如mysql.jar)放到一個(gè)目錄中,一般放在%JAVA_HOME%/lib/下。不過(guò)只要不放在軟盤(pán)上
總是能找到的。

配置WLS7
假如WLS7安裝在c:ea下,進(jìn)入c:eaweblogic700in目錄,修改startWLS.cmd(注意首先修改這個(gè)
文件是因?yàn)橛械奈臋n上說(shuō)修改c:eauser_projectsmydomain下的startWeblogic.cmd,是不對(duì)的。)首先修
改這個(gè)文件是這時(shí)c:eauser_projectsmydomain下的startWeblogic.cmd還沒(méi)有產(chǎn)生,保證你不會(huì)改錯(cuò)。如
果是linux下修改startWLS.sh

找到set CLASSPATH=%JAVA_HOME%lib ools.jar;%WL_HOME%serverlibweblogic_sp.jar;
%WL_HOME%serverlibweblogic.jar;%CLASSPATH%
加上mysql.jar:成
set CLASSPATH=%JAVA_HOME%lib ools.jar;%WL_HOME%serverlibweblogic_sp.jar;
%WL_HOME%serverlibweblogic.jar;pathmysql.jar;%CLASSPATH%

存檔退出,在啟動(dòng)菜單上運(yùn)行BEA Weblogic platform 7.0 -> domain configuration wizard有的就叫
configuration wizard。

1.Select a template:選擇WLS Domain,Name默認(rèn)的mydomain
2.Choose Server Type: 第一個(gè)
3.Specify directory for "mydomain" domain:C:eauser_projects
4.value Administrative Server Info-Admin Server Name or IP 寫(xiě)機(jī)器的ip,這樣保險(xiǎn),其它默認(rèn)
5.Configure Managed Server: Server Name:默認(rèn)為myserver
Server Listen Address:寫(xiě)機(jī)器的ip .其它默認(rèn)
6.Create System UserName and Password:寫(xiě)用戶(hù)名和密碼,如:system:aaaaaa
7.Install Server as Windows Servic:這里問(wèn)要不要在啟動(dòng)操作系統(tǒng)時(shí)啟動(dòng),可根據(jù)自己的需用選擇。
8.Install Domain in Windows Start Menu:這里問(wèn)要不要在開(kāi)始菜單添加快捷方式,建議是“Yes”.
這樣在開(kāi)始菜單中會(huì)出現(xiàn)EBA Weblogic Platform 7.0->User projects-my domain->Start Server

如果8選擇了yes,現(xiàn)在就從開(kāi)始->EBA Weblogic Platform 7.0->User projects-my domain->Start Server啟動(dòng)
等一會(huì)兒,啟動(dòng)結(jié)束后進(jìn)入:http://localhost:7001/console如果找不到頁(yè)面把localhost換成主機(jī)名或IP試試
如果不能進(jìn)入檢查上面的步驟,反正這里如果不能訪(fǎng)問(wèn)向下做了,死也要給我訪(fǎng)問(wèn)到這個(gè)頁(yè)面。
輸入剛才的用戶(hù)名和密碼(system:aaaaaa)進(jìn)入。

在左邊的目錄樹(shù)中選中Services->JDBC->Connection Pools,單擊右側(cè)的Configure a new JDBC Connection Pool.
輸入以下信息:
Configuration->General頁(yè):
Name = Mysql Connection Pool
URL = jdbc:mysql://localhost:3306/ejbdb(注意ejbdb是我上面的例子字段,以下都會(huì)這樣)
Driver classname = org.gjt.mm.mysql.Driver
Properties :
user=root
password=111111 這兩行是Properties 的內(nèi)容,就是name=value形式
單擊Create建立連接池。
選擇Targets->Server頁(yè):
將myserver(服務(wù)器名稱(chēng))移至右側(cè)的列表中,但擊單擊Apply

在左邊的目錄樹(shù)中選中Services->JDBC->Data Sources(或者TXData Sources)單擊右側(cè)的Configure a new JDBC
Connection Pool.,輸入以下信息:
Configuration->General頁(yè):
Name = Mysql Tx Data Source
JNDI Name = ejbPool 這個(gè)名字就是你以后要引用的DataSource名稱(chēng)
Pool Name = Mysql Connection Pool
選中Emulate Two-Phase Commit for non-XA Driver和Row Prefetch Enabled
單擊Create建立數(shù)據(jù)源。
Targets->Server頁(yè):
將myserver(服務(wù)器名稱(chēng))移至右側(cè)的列表中,但擊單擊Apply,配置完畢


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

配置JB7

1. 修改環(huán)境變量TEMP和TMP 為不帶空格的目錄如:c:winnt emp,一定要注意,不然發(fā)布肯定不成功
2. 啟動(dòng)Jbuilder7,Tools->Configure libraries->class->Add,找到mysql.jar,OK,OK
3.選擇:Tools->Configure Servers選中左側(cè)的Weblogic Application Server 6.x+,選中右邊的
Enable Server
4. 將General->Home Directory設(shè)為WebLogic7的Home Directory如:c:/bea/weblogic700/server,正常
的話(huà)Jbuilder7將自動(dòng)為你添好其他的項(xiàng)。server parameters不填,在下面的class中用add加上mysql.jar默認(rèn)已經(jīng)
加上了c:/bea/weblogin700/server/lib/weblogic.jar和c:/bea/weblogin700/server/lib/weblogic_sp.jar,如果
沒(méi)有說(shuō)明c:/bea/weblogic700/server沒(méi)有指定正確。其實(shí)c:/bea/weblogin700/server/lib/weblogic_sp.jar是不存
在的,不要管它。只要把mysql.jar加進(jìn)來(lái)。如果2沒(méi)有做,是找不到的。
5. 將Custom->JDK Installation Directory設(shè)為 JDK的安裝目錄,如:c:/bea/jdk131_02
6. 將Custom->BEA Home Directory設(shè)為WebLogic7的Home Director,如:c:/bea
7. 將Custom->Domain Directory設(shè)為你的域目錄,如:c:/bea/user_projects/mydomain
8. 添好User name, Password ,Domain name, Server name后,單擊OK退出。
9. 選擇:Tools->Enterprise Setup,單擊CORBA頁(yè)上的New, 按下表填寫(xiě)相應(yīng)信息:
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: emp(任意目錄,不要有空格)
單擊OK退出。
10.config JDKS中最好保持用jb7自己的JDK1。3。1或用EAB下面的JDK,不要改成另外安裝的JDK1。4,因?yàn)?
這個(gè)版本中有一些本地方法實(shí)現(xiàn)不能和WLS很好地工作,肯定會(huì)出錯(cuò)。
11.選擇Project->Default Project properties 在Path頁(yè)的Required libraries中將會(huì)看到WebLogic 6.x+
Client和WebLogic 6.x+ Deploy兩項(xiàng),如果沒(méi)有,請(qǐng)檢查以上步驟是否正確。選擇Server頁(yè),單擊Single services
for all service in project,在下拉列表中選擇WebLogic Application Server 6.x+,但擊OK退出。
12。Tools->Database pilot->view->options->Drivers->Add,彈出對(duì)話(huà)框中輸入org.gjt.mm.mysql.Driver
確定后在下面的Simple URL中輸入mysql://localhost:3306/ejbDB,注意前面沒(méi)有"jdbc:"確定.
在File->New彈出new URL,選擇Driver為剛才加入的org.gjt.mm.mysql.Driver,則URL自動(dòng)為顯示為
jdbc:mysql://localhost:3306/ejbDB,確定,然后點(diǎn)中工具條那個(gè)向右下的箭頭(apply)。雙擊左邊剛加入的這個(gè),
輸入用戶(hù)名root和密碼111111可是測(cè)試數(shù)據(jù)庫(kù)連結(jié)是否通過(guò),如果沒(méi)有看到下面的表請(qǐng)檢查以上步驟。



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

開(kāi)發(fā)EJB
File->New Project生成一個(gè)新工程;如:myproject
File->New 選擇Enterprise,選擇EJB2.0 Bean Designer,OK。
按New彈出EJB module Wizard,Name改為AccountApp,左邊組樹(shù)上出現(xiàn)設(shè)計(jì)器AccountApp,點(diǎn)開(kāi)前面的加號(hào)可以
看到它下面有JDBC 1 Datasources和Security Roles。雙擊EJB設(shè)計(jì)器AccountApp,右邊顯示設(shè)計(jì)界面,以后從別的介面
要返回設(shè)計(jì)界面就雙擊設(shè)計(jì)器。點(diǎn)擊工具條上第一個(gè)圖標(biāo),就是象一個(gè)谷子一樣的東西上面有一個(gè)太陽(yáng)了,title為
Create EJB.有四個(gè)選項(xiàng),CMP2.0,BMP,SESSION,MESSAGEp 四種BEAN,本例選BMP,出來(lái)Bean設(shè)計(jì)窗,右邊會(huì)有一個(gè)
Bean properties框,不過(guò)如果你MOUSE動(dòng)得快它可能會(huì)消失了。不要緊,在BEAN的名字上左擊會(huì)出來(lái),把BEAN的名字改為
AccountBean,interface為local/remote。alway warp primary key為true,點(diǎn)擊classes and package:
package:改為你想要放的包名,本例為:com.fuck.axamn
如果你用默認(rèn)類(lèi)名也行,但我喜歡遠(yuǎn)程接口中不加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設(shè)計(jì)窗上BEAN的名字,選view source,好吧,把例子手工敲上去。先不要COPY上去啊,自己敲可以加深理解。如
果最后了出錯(cuò)了再COPY。

Bean類(lèi)本身設(shè)計(jì)好后,點(diǎn)擊左邊設(shè)計(jì)器上面的package里面會(huì)看到它的接口類(lèi),一個(gè)一個(gè)點(diǎn)擊右邊會(huì)出現(xiàn)源碼,一個(gè)一個(gè)
設(shè)計(jì)好,要加入的附屬類(lèi)(比如本例中的AccountExeption)通過(guò)右擊package,選Add files/packages,加入一個(gè)java文件,
注意要和自動(dòng)生成的文件在同一目錄。

全部寫(xiě)好后,右擊工程名,make一下,然后按F9運(yùn)行。如果WLS沒(méi)有啟動(dòng)JB會(huì)自動(dòng)啟動(dòng)它的。

沒(méi)有問(wèn)題后右擊設(shè)計(jì)器,選擇Deploy可以順利發(fā)布到WLS上,從http://localhost:7001/console進(jìn)入后可以看到AccountApp
被發(fā)布到WLS中了。

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

測(cè)試:
在工程中,File->New->Enterprise->EJB test Client.名稱(chēng)設(shè)為AccountClient
在左邊組件樹(shù)中雙擊AccountClient.java,編輯內(nèi)容為本本例提供的內(nèi)容.

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 開(kāi)發(fā)CMP

CMP開(kāi)發(fā)其實(shí)比BMP更簡(jiǎn)單(我說(shuō)的是操作上的簡(jiǎn)單),只要定義好你的業(yè)務(wù)邏輯,
在實(shí)現(xiàn)時(shí)其實(shí)很快的.但網(wǎng)上竟然找不到一任何用JB開(kāi)發(fā)CMP的例子,在J道上有一篇文章
竟然要收50元才教大家如何用JB開(kāi)發(fā)CMP,太黑了.而且是站長(zhǎng)發(fā)的,所以在下不敢在那兒
發(fā)表這篇文章,不過(guò)請(qǐng)大家在別的地方相互轉(zhuǎn)貼,不要讓那家伙黑了心騙別人的錢(qián).

JB開(kāi)發(fā)CMP,其實(shí)方便得很,就是大多數(shù)人不知道如何操作,因?yàn)镃MP不是從BEAN設(shè)計(jì)器
的設(shè)計(jì)界面建立的.而且很多選項(xiàng)沒(méi)有別人說(shuō)明確實(shí)不知道選什么.

前題是根據(jù)原來(lái)的那一篇配置的文章已經(jīng)配置好JB7+WLS+MYSQL

現(xiàn)在開(kāi)始,先定義CMP持久化字段的數(shù)據(jù)庫(kù),比如我們要做一個(gè)Product的BEAN,包括四
個(gè)字段:
productID:產(chǎn)品編號(hào)(唯一)
name:產(chǎn)品名稱(chēng)
description:產(chǎn)品說(shuō)明
basePrice:產(chǎn)品基價(jià)

那么先要定義好數(shù)據(jù)庫(kù):
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
);

啟動(dòng)JB7.
File->New Project->輸入工程名 如:myproject2
File->New 選擇Enterprise,選擇EJB2.0 Bean Designer,OK。
按New彈出EJB module Wizard,Name改為ProductApp,左邊組樹(shù)上出現(xiàn)設(shè)計(jì)器ProductApp
注意這時(shí)不要從右邊的設(shè)計(jì)界面上Create EJB,雙擊設(shè)計(jì)器ProductApp,在組件樹(shù)下面會(huì)出現(xiàn)
DataSources,右鍵選擇 Import Schema From Database,彈出Database Schema provider窗口
在All schema前面打勾.
選擇Driver為 org.gjt.mm.mysql.Driver,下面的url會(huì)自動(dòng)為你原來(lái)設(shè)定的URL.注意在
原來(lái)設(shè)定URL時(shí)不應(yīng)該加jdbc:,要不這兒就會(huì)出現(xiàn)jdbc:jdbc:mysql://localhost:3306/ejbdb
如果是這樣去掉一個(gè)"jdbc:",輸入username和password(root:111111).把jdni name中的默認(rèn)
值DataSource改為你在WLS中配置MYSQL時(shí)的JDIN NAME(例子中是ejbPool).點(diǎn)擊OK,如果連結(jié)
成功在DataSources下面會(huì)出現(xiàn)一個(gè)ejbPool,點(diǎn)擊它前面的+號(hào)可以看到ejbdb這個(gè)庫(kù)下面的所
有表,我們現(xiàn)在要把productbean這個(gè)表來(lái)作為持久化字段的對(duì)應(yīng)關(guān)系,所以右擊productbean
選把第一項(xiàng)Create CMP2.0 Entity Bean.注意Mysql把表名全部設(shè)為小寫(xiě)了,所以新建的Bean
的名稱(chēng)為Productbean,這時(shí)右邊的設(shè)計(jì)界面中產(chǎn)生一個(gè)Bean設(shè)計(jì)窗,名稱(chēng)為Productbean,左擊
名稱(chēng),右邊出現(xiàn)屬性對(duì)話(huà)框:
Bean name:改為ProductBean.
Abstract Schema name:會(huì)自動(dòng)跟著改成ProductBean.
interface:local/remote
always wrap primary key:true
classes and packages:還是的BMP一樣,默認(rèn)的命名是:

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中,本例是一個(gè)BEAN對(duì)應(yīng)一張表,所以先第一個(gè)Single table maping
如果是一個(gè)BEAN和多表關(guān)關(guān)聯(lián)選第二項(xiàng),然后把左邊的primary key和右邊各表對(duì)應(yīng)的字段
用紅線(xiàn)連一下就行了,你只要點(diǎn)primary key的字段拖就會(huì)出現(xiàn)紅線(xiàn).

點(diǎn)擊左邊組件樹(shù)上設(shè)計(jì)器ProductApp上面的package,一級(jí)一級(jí)點(diǎn)開(kāi),看到生成的5個(gè)文件

ProductHome.java
ProductLocalHome.java
Product.java
ProductLocal.java
ProductBean.java
一一按本例附件中的文件內(nèi)容敲進(jìn)去.完成后雙擊設(shè)計(jì)器,讓右邊回到BEAN設(shè)計(jì)界面上,會(huì)看
到ProductBean的finder方法有七個(gè),findByPrimaryKey是系統(tǒng)自動(dòng)生成系統(tǒng)的,這個(gè)不要你考慮.
但是其它的6個(gè)系統(tǒng)不可能知道你是按什么條件查找,所以要手工寫(xiě)入EJB-QL.
在各方法上點(diǎn)擊一下就會(huì)在右邊彈出對(duì)話(huà)框,別有都不動(dòng),在最下面的Query內(nèi)容框中輸入以
下對(duì)應(yīng)的內(nèi)容

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.basePrice<?1
findCheapProducts: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

右鍵點(diǎn)擊工程mysproject make,如果輸入沒(méi)有錯(cuò)誤,應(yīng)該順利編譯.然后按F9運(yùn)行。如果WLS沒(méi)有啟動(dòng)JB
會(huì)自動(dòng)啟動(dòng)它的。

沒(méi)有問(wèn)題后右擊設(shè)計(jì)器,選擇Deploy可以順利發(fā)布到WLS上,從http://localhost:7001/console進(jìn)入
后可以看到ProductApp 被發(fā)布到WLS中了。
------------------------------------------------------------------------------------------
測(cè)試:
在工程中,File->New->Enterprise->EJB test Client.名稱(chēng)設(shè)為ProductClient
在左邊組件樹(shù)中雙擊ProductClient .java,編輯內(nèi)容為本本例提供的內(nèi)容.

make ProductClient.java
run ProductClient.java

在測(cè)試文件中如何查找ProductApp這個(gè)EJB呢,其實(shí)你在左邊組件樹(shù)中雙擊設(shè)計(jì)器下面ProductBean的
名稱(chēng),右邊會(huì)顯示出這個(gè)BEAN的屬性,Home JDNI NAME和Local JDNI name分別就是遠(yuǎn)程和本地的JDNI
命稱(chēng),你在測(cè)試文件就查找這個(gè)名稱(chēng),如:
Object objref = ctx.lookup("ProductBeanRemote");
"ProductBeanRemote"就是Home JDNI NAME框中的值.

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“JBuilder7+Weblogic7+mysql開(kāi)發(fā)EJB如何配置”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI