Borland公司推出Jbuilder?7后,引起了很多JAVA愛好者的關注,本文是根據(jù)在Borland公司的網站上的一篇有關Jbuilder?7綜合Weblogic?Server?7.0的文章為主要內容來寫的。綜合自己的經驗,目的希望大家能順利的搭建一個比較普遍流行的J2EE環(huán)境,并學會開發(fā)基本的EJB程序。
1、創(chuàng)建一個Weblogic?Server域本文假設你已經正確安裝了這兩個軟件。值得注意的是在Weblogic?Server?7.0安裝的時候,最后要你設置一個Server,你可以在安裝的時候設置也可以在安裝完了后從開始菜單
——>程序——>Bea?Weblogic?Platform7.0——>Configuration?Wizard來設置。在設置的時候不要選擇第一個WLS?Examples,選最后一個WLS?Domain(如圖1)。第一個是設置了一個范例域,有一些范例程序和連接池設置、數(shù)據(jù)源,在你運行的時候會出現(xiàn)連接池設置不對的問題。第三個是創(chuàng)建一個空的域,默認域名是mydomain,接下來選擇默認的Single?Server,接下來的一步默認域目錄是H:\bea\user_projects\,接下來的一步默認按next,填寫了用戶名和密碼后next,最后創(chuàng)建一個域。

?????????????????????????????????(圖1)
??2、在Jbuilder?7下設置Weblogic?Server?7 (1)運行Jbuilder?7后,選擇Tools——>Configure?Servers,彈出的窗口如圖2所示。
在左邊選擇Weblogic?Server?6.x+,選擇右邊面板上的Enable?Server選項后,在Home?directory里寫上你的Weblogic?Home目錄H:/bea/weblogic700/server(我這里安裝在H盤上,如果你的機器上是別的盤請自行更改)。在Class標簽下新增四個在Jbuilder根目錄下的lib目錄下的.jar文件,分別為jaxrpc.jar、jds.jar、jdsremote.jar、jdsserver.jar。并按照如圖的順序按move?up按鈕將jaxrpc.jar移到第一個。這些.jar文件在你開發(fā)Entity?Bean的時候如果使用了JdataStore數(shù)據(jù)庫的時候會起作用。

?????????????????????????????????(圖2)
選擇上面的Custom?標簽(如圖3)將JDK?Installation?Directory設置你的JDK安裝目錄如:
H:/bea/jdk131_02、BEA?Home?Directory設置你的BEA的安裝目錄如:H:/bea、DomainDirectory設置你的域目錄如:H:/bea/user_projects/mydomain。接下來填寫用戶名和密碼,用戶名和密碼就是你在設置Weblogic?Server域的時候你設置的用戶名和密碼。填寫Domain?Name、Server?Name如?:mydomain、myserver后,單擊OK退出。

????????????????????????????????(圖3)
(2)選擇Tools->Enterprise?Setup,單擊CORBA面板上的New,彈出如圖4所示的窗口,在Name
?for?this?configuration里填寫?WelLogic?7.0,在Path?for?ORB?Tools里填寫?h:/bea/weblogic700/server,在Library?for?projects?里選擇?WebLogic?6.x+?Deploy,在IDL?compiler?command里填寫idlj.exe,?在Commnad?option?for?output?directory?里填寫任意一個目錄比如:h:\temp單擊OK退出。
(3)選擇Project->Default?Project?properties選擇Server標簽,在Single?services?for?all?service?in?project在下拉列表中選擇WebLogic?Application?Server?6.x+,單擊OK退出,配置完畢。這里的兩個選項Single?services?for?all?service?in?project和Modular?Services?provided?by?different?servers,第一個是在項目里用一個服務,后面這個是在項目里用不同的服務的意思,比如:jsp和servlet可以用Tomcat的,而ejb是用Weblogic的。這里選擇在項目里用一個服務。
?

?????????????????????????????????(圖4)
3、在配置好的環(huán)境下開發(fā)一個session?beans
(1)???創(chuàng)建一個項目
選擇File——>New選擇Project面板下的?Project項。在Name中填入TestSes,Directory里填寫你的項目要放的位置,其他的默認,單擊Finish。
(2)???創(chuàng)建一個Session?Bean模塊
選擇File——>New選擇Enterprise面板下的EJB?Module,選擇OK。在出現(xiàn)的窗口后,在Name里填寫TestSesMod,在Version里選擇EJB?2.0?compliant。
(3)???創(chuàng)建一個Session?Bean在Jbuilder里,EJB可以可視化的創(chuàng)建,在右邊的空面板里點擊鼠標右鍵,選擇Create?EJB在子菜單里選擇Session?Bean,如圖5所示。現(xiàn)在已經創(chuàng)建了一個可視化的Session?Bean,在Bean的設置面板中你可以改變Bean的名字,在這里在Bean?Name里輸入TestSes。現(xiàn)在開始創(chuàng)建一個方法,在TestSes上點擊鼠標右鍵,選擇Add后選擇Method(如圖6)在Name里填getName,Return?type填String,Interfaces里選Remote。在左邊的點testses旁邊的+號,在下面拉下來的但個JAVA文件里雙擊TestSesBean.java,在getName方法里加入如下代碼:
Public?String?getName(){
??????return?"Testing?Successful";
}

??????????????????????????????????(圖5)

??????????????????????????????????(圖6)
(4)???創(chuàng)建配置JAR文件
要運行Session?Bean,首先要編譯這個項目。選擇Project下的Make?Project?TestSes.jpx,編譯完了后這時你也可以看到TestSesBean.java旁邊多了個+號,點擊這個+號你可以看到幾個由容器產生的文件。你可以在左邊的面板里看到TestSesMod.jar文件。雙擊TestSesMod.jar可以在左邊看到部署描述(如圖7)。

??????????????????????????????????(圖7)
(5)???創(chuàng)建運行期的設置
Jbuilder允許用戶為不同的應用程序創(chuàng)建運行期設置。
選擇Run?——>Configuration?Name,在出來的Project?Properties窗口里Run面板是默認選擇上了的,點擊New來創(chuàng)建一個新的運行期設置。在彈出來的Runtime?Properties點擊Server標簽在Configuration?name里輸入一個設置名,這里輸入Server(如圖8)后按OK后再點OK退出。
(6)???在Jbuilder里運行Weblogic
選擇菜單Run下的Run?Project運行Weblogic?Server
(7)???部署EJB到Webloigc?Server上去
右擊TestSesMod.jar,在彈出的面板里選擇Deploy?option?of?TestSesMod.jar,再選擇Deploy(如圖9)。
(8)???遠程部署
這里簡單的介紹一下怎么在遠程的Weblogic?Server上部署應用。即使是在遠程部署的話,在本機上也需要裝有應用服務器,如果你在Weblogic?Server7.0上部署的話,在Jbuilder里選擇Tools?——>Enterprise?Deployment,在彈出的窗口里修改Admin?url,為遠程的服務器的主機名和端口號。并設置正確的用戶名和密碼。

????????????????????????????????????(圖8)

?????????????????????????????????????(圖9)
(9)???創(chuàng)建一個客戶端測試程序來測試你的Session?Bean
?? 在Jbuilder里選擇File——>New選擇Enterprise標簽里的EJB?Test?Client,點擊OK。在彈出來的窗口里的Name里輸入TestSesTestClient,單擊OK結束。
在文件的main()方法里加入如下代碼:
??public?static?void?main(String[]?args)?{
????TestSesTestClient?client?=?new?TestSesTestClient();
????try{
?????client.create();
?????String?name=client.getName();
?????System.out.println?("Name?form?the?Test?client="+name);
????}
????catch?(Exception?ex){}
}
(10)運行客戶端測試程序
要運行測試程序的話,先要為它加一個運行期設置。在Run——>Configuration里選擇New在彈出的窗口里選擇Run下的Application。在上面的Configuration?name里輸入Client,在Main里點選旁邊的按鈕,在彈出的窗口里選擇Browse標簽下的testses下的TestSesTestClient。一路OK完成。右擊TestSesTestClient.java,單擊Run?Using?Client后,運行Client程序。運行成功后如圖10所示。Client得到了調用了Session?Bean的方法,返回了Testing?Successful。

????????????????????????????????(圖10)
4、常見錯誤解答
錯誤1:WebLogic?Server?cannot?start:?config.xml?not?found
錯誤代碼描述:
??<140013>??
C:\bea\user_projects\.\config.xml?not?found?
Since?no?config.xml?was?found,?the?fileRealm.properties?file?will?not?be?used.?
Would?you?like?the?server?to?create?a?default?configuration?and?boot??(y/n):
問題發(fā)生時機:
在Jbuilder上運行Weblogic?Server時,在Weblogic?6.x+?http:7001頁上。
產生原因:
Weblogic域目錄沒有正確設置
解決方法:
選擇Tools——>Configure?Servers,左邊選擇Weblogic?Server?6.x+,選擇右邊的Custom標簽,
檢查你的域目錄是否正確。如:h:\bea\user_projects\mydomain。
錯誤2:Authentication?for?user??denied
錯誤代碼描述:
??<000364>?Exception:java.lang.SecurityException:?Authentication?for?user?username?denied?
java.lang.SecurityException:?Authentication?for?user?username?denied.
問題發(fā)生時機:
在Jbuilder上運行Weblogic?Server時,在Weblogic?6.x+?http:7001頁上。
產生原因:
在Jbuilder里用戶名、密碼填寫錯誤
解決方法:
選擇Tools——>Configure?Servers,左邊選擇Weblogic?Server?6.x+,選擇右邊的Custom標簽,
檢查你的用戶名和密碼是否正確。
錯誤3:Deployment?of?Web?application?failed
錯誤代碼描述:
Exception:weblogic.management.ApplicationException:?Prepare?failed.?Task?Id?=?0?
Module:?TestWebApp?Error:?weblogic.j2ee.DeploymentException:?Cannot?deploy?
ServletContext(id=2545674,name=TestWebApp,context-path=/TestWebApp)?from?
C:\bea\user_projects\mydomain\myserver\upload\TestWebApp\TestWebApp.war?on?myserver?
because?there?is?already?a?webapp?named?
ServletContext(id=5684736,name=TestWebApp,contextpath=/
TestWebApp)?loaded?from?C:\Documents?and?
Settings\spati\jbproject\TestWebApp\TestWebApp,?which?is?using?the?context?path?
/TestWebApp.
問題發(fā)生時機:
部署WAR文件的時候
產生原因:
可能是你已經在Weblogic上部署了一個相同名稱的應用了。
解決方法:
選擇Project——>Project?Properties,選擇Server標簽,在Services列表里先選上jsp/servlet,把右邊的Map?project?webapps?at?runtime的勾去掉,就可以安全的部署了。如果問題還是存在的話,你就只有重新新建一個WEB應用程序,把你做的程序都拷貝到新的應用上再部署了。
錯誤4:NameNotFoundException?from?test?client
錯誤代碼描述:
javax.naming.NameNotFoundException:?Unable?to?resolve?'TestSes'?Resolved:?
''Unresolved:'TestSes';?remaining?name?'TestSes'
問題發(fā)生時機:
部署完EJB?JAR文件后,運行TestClient的時候
產生原因:
TestClient不能找到EJB的JNDI名。
解決方法:
打開Weblogic?Server?console檢查部署是否有錯,在Deployments——>EJB里找到EJB的模塊名。檢查名稱后,點擊右邊窗口的Deploy,如果JAR部署正確的話,你將在右邊的窗口的Deployment狀態(tài)是true。
錯誤5:test?client?run?failed
錯誤代碼描述:
javax.naming.CommunicationException.?Root?exception?is?java.net.ConnectException:?
t3://localhost:7001:?Destination?unreachable;?nested?exception?is:?
java.net.ConnectException:?Connection?refused:?connect;?No?available?router?to?destination
問題發(fā)生時機:
部署完EJB?JAR文件后,運行TestClient的時候
??產生原因:
test?Client和Weblogic通信出現(xiàn)問題
解決方法:
如果你的Weblogic是在別的主機上或者端口號改變了的話,請你在TestSesTestClient.java里修改原來的有關主機名和端口的代碼。
好了,到現(xiàn)在為止,你已經可以搭建一個流行的J2EE環(huán)境并基本上了解了EJB在Jbuilder上的實現(xiàn)。希望大家多提意見,如果有問題請與作者聯(lián)系。Email:flyingwcy@163.com。
posted on 2005-10-23 00:11
YangRj 閱讀(264)
評論(0) 編輯 收藏 所屬分類:
精華文章