JavaApplication遠(yuǎn)程調(diào)用EJB

字號(hào):

EJB中的sessionbean可以對(duì)外提供Remote接口供遠(yuǎn)程客戶端調(diào)用。其客戶端可以是servlet,java application,或EJB.下面我跟大家分享如何在java application中遠(yuǎn)程調(diào)用session bean.我的配置環(huán)境如下。
    Sessionbean:運(yùn)行在websphere v6.0 中,其jndi名為"Hello"
    JavaApplication: 使用eclipse IDE 創(chuàng)建。
    首先,要對(duì)eclipse進(jìn)行配置。必須與服務(wù)器websphere使用相同的JRE.在eclipse菜單欄中選擇Window,Preferences,在彈出窗口的左邊選擇Java,Installed JREs.默認(rèn)地,右邊窗口現(xiàn)示安裝了jre1.5.0.0_07(具體版本可能有所不同)。我們需要把它換成websphere的JRE.把jre1.5.0.0_07前面的勾去掉,點(diǎn)擊add.在彈出窗口的第三行:JRE home directory 選擇Browse……JRE的路徑為C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\java\jre.如果你沒有安裝RAD,就需要到網(wǎng)上下載一個(gè)JRE.一直點(diǎn)擊OK退回eclipse主界面。
     其次,要向工程添加必要的JAR.右擊工程,選擇Properties-Java Build Path-Add
    Extenal JARs.添加如下的Jar:wssec.jar,naming.jar,namingclient.jar,sas.jar,ecutils.jar,websphere.jar.這些jar都可以在C:\Program Fires\Rational\SDP\6.0\runtimes\base_v6\lib目錄下找到。
    接著我門要把sessionbean‘Hello’的home和remote接口的??荚嚧筇崾綾lass文件拷被到eclipse的工程中,使得我們?cè)诠こ讨锌梢砸盟?BR>    具體程序如下:
    public class Test{
    public static void main(String[] args) throws NamingException,
    RemoteException, CreateException {
    Properties properties = System.getProperties();
    //因?yàn)榭蛻舳撕蛃essionbean不是運(yùn)行在同一 服務(wù)器上,需要對(duì)properties進(jìn)行配置。
    //如果不是在同一臺(tái)電腦上運(yùn)行l(wèi)ocalhost需改為服務(wù)器的ip地址或主機(jī)名
    //900是服務(wù)器端口,默認(rèn)值可能是900或2809
    properties.put(Context.PROVIDER_URL, "iiop://localhost:900");
    properties.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
    Context ctx = new InitialContext(properties);
    Object obj = ctx.lookup( "Hello");
    HelloHome ejbHome = (HelloHome) javax.rmi.PortableRemoteObject
    .narrow(obj, HelloHome.class);
    Hello hello= ejbHome.create();
    //現(xiàn)在我們?nèi)〉昧怂枰膆ello對(duì)象
    }
    }