程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 開發SessionBean

開發SessionBean

編輯:關於JAVA

分以下幾個步驟:

1 建立測試web模塊

2 建立idea ejb模塊,編寫ejb

3 編譯,打包

4 寫測試頁面

5 發布ejb,web測試模塊,測試ejb

1 建立web測試模塊。

在默認的user_projects\domains\mydomain\applications目錄下,新建一個名為web的文件夾。這個文件夾就是我們測試ejb的web模塊。

在web文件夾下新建WEB-INF文件夾,在WEB-INF下新建lib文件夾。

在WEB-INF下新建web.XML文件,內容如下:

ok。web測試模塊完成。

2 建立idea ejb模塊,編寫ejb

打開idea,選擇 file-new-ejb modules,把module name 改為“EjbSamples”,如下圖:

在服務器選項,選擇weblogic,其余都按默認設置。最後點finish。

在src文件夾下新建包。包名如下:com.dIEgoyun.ejb.slb,如下圖:

把鼠標放到模塊名上,右鍵,選擇:new-sessionBean。然後在彈出的屬性框設置如下:

:輸入Helloworld

Package:選擇/輸入com.dIEgoyun.ejb.slb

其余信息idea會幫你自動設置,整個屬性框屬性如下:

點擊ok結束

這時會彈出ejb的屬性配置界面,如下:

在Display name,輸入 HelloworldEJB

然後切換到weblogic server頁,輸入jndi name如下:ejb/session/HelloworldEJB

界面如下:

關閉這個屬性頁。Idea已經幫你寫好了ejb的配置信息。可以打開META-INF/下的ejb-jar.xml和weblogic-ejb-jar.XML進行查看。

這時在com.dIEgoyun.ejb.slb下,應該有三個文件:Helloworld,HelloworldBean和HelloworldHome

在Helloworld接口中添加一個方法如下:

public interface Helloworld extends EJBObject {

public String getGreeting(String name)throws RemoteException;

}

在HelloworldBean接口中添加一個方法如下:

public class HelloworldBean implements SessionBean {

……………

//omit others

public String getGreeting(String name){

return "Hello," + name;

}

}

ok.你的HelloWord ejb已經寫好了。

3 編譯,打包,發布ejb

本例采用web方式訪問ejb。並且沒有把web模塊和ejb jar都打包成ear。所以必須先把ejb源碼編譯成jar,發布這個jar,然後復制到測試web模塊的lib目錄下,這樣web頁面才能訪問到bean。

本例采用ant腳本來執行編譯和打包等命令。在idea的ejbSamples模塊下新建一個build.XML腳本,內容如下:

destdir="${build}" includes="**/*.Java"/>

針對你本機weblogic的安裝,修改腳本以下信息即可:

:由於本例采用weblogic.jar進行Javac編譯,所以必須知道該jar的位置。通常,它位於\weblogic81 erver\lib\下。例如,如果你的weblogic安裝在C盤,那麼你的jar應該如此設置:

:weblogic放置上傳文件的目錄。通常位於\user_projects\domains\\\upload文件夾下。如果你采用的是weblogic默認安裝,那麼通常是mydomain(由weblogic默認創建),通常是myserver。例如,如果你的weblogic安裝在C盤,並且domain和server都采用默認,那麼屬性設置如下:

:web測試模塊的lib目錄。按照你自己本機配置進行設置。

至此,ejb的編寫,配置工作全部完成。運行剛才的腳本。

Ant build.XML

然後查看 web測試模塊/WEB-INF/lib 下是否有ejb jar,weblogic的upload目錄下是否有ejb jar,如果沒有,請按所列步驟仔細檢查你的配置情況。

4 寫測試頁面進行測試

在web模塊下新建hello.JSP,內容如下:

<%@ page language="Java" %>

<%@ page import="com.dIEgoyun.ejb.slb.Helloworld,

com.dIEgoyun.ejb.slb.HelloworldHome,

Javax.ejb.*,

Java.math.*,

Javax.naming.*,

Javax.rmi.PortableRemoteObject,

Java.rmi.RemoteException" %>

Stateless Bean Examples


See :


<%

Helloworld hello = null;

String name = null;

name = request.getParameter("myname");

if(name!=null && !"".equals(name)){

try {

InitialContext ic = new InitialContext();

Object objRef = ic.lookup("ejb/session/HelloworldEJB");

HelloworldHome home = (HelloworldHome)PortableRemoteObject.narrow(objRef, HelloworldHome.class);

hello = home.create();

} catch (RemoteException ex) {

System.out.println("Couldn't create hello bean."+ ex.getMessage());

} catch (CreateException ex) {

System.out.println("Couldn't create hello bean."+ ex.getMessage());

} catch (NamingException ex) {

System.out.println("Unable to lookup home: "+ "HelloworldHome "+ ex.getMessage());

}

}

if(hello!=null && !"".equals(hello)) {

String s = hello.getGreeting(name);

out.print(s);

}

%>

5 發布ejb,web測試模塊,調試ejb

發布ejb。啟動weblogic server,打開控制台。

然後在ejb發布頁面,選擇upload文件夾下的jar進行發布,默認路徑應是:\user_projects\domains\mydomain\myserver\upload

發布web模塊

在deploy web application modules下,定位到\user_projects\domains\mydomain\applications下,可以看到我們建立的web模塊。點“Target Module”進行發布,name取名為“web”

ok。所有工作均已完成!

打開浏覽器,輸入:http://localhost:7001/web/hello.JSP

點submit,就可以看到hello字樣。

FAQ:

1 為什麼在打包ejb之後,把ejb copy到weblogic的upload目錄下?(這個過程是由build.XML腳本完成的)

答:一般情況下如果你修改了ejb,那麼你就要在weblogic控制台重新deploy ejb的jar。經常進行這項工作是很煩人的。幸好weblogic提供了upload的特性,你把jar 上傳到weblogic,然後deploy upload文件夾裡的這個jar。以後每次在你修改ejb,打包成jar之後,你用新的jar覆蓋upload目錄下的jar,就不用重新deploy jar了。通過這種方式模擬了jboss的熱部署特性。

其他模塊,例如war,ear,都可以通過這種方式來deploy。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved