<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    城市獵人

    在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
    posts - 1, comments - 7, trackbacks - 0, articles - 89

    EJB3.0的各應用服務器提供的JNDI接口(轉)

    Posted on 2008-07-11 23:27 sailor 閱讀(760) 評論(0)  編輯  收藏 所屬分類: EJB3
    來源:http://blog.163.com/e_adon/blog/static/338840452007721831904/

            在分布式開發中,JAVA客戶端程序是通過JNDI去查詢EJB的,而JNDI的全名是:The Java Naming and Directory Interface。因為JNDI 是一組接口,所以我們只需根據接口規范編程就可以。要通過JNDI 進行資源訪問,我們必須設置初始化上下文的參數,主要是設置JNDI 驅動的類名(java.naming.factory.initial)和提供命名服務的URL
    (java.naming.provider.url)。因為Jndi 的實現產品有很多。所以java.naming.factory.initial 的值因提供JNDI 服務器
    的不同而不同,java.naming.provider.url 的值包括提供命名服務的主機地址和端口號。

            大家在編程時,最令人氣憤的就是EJB程序寫好了,而客戶端卻不知道如何去調用它,一般書上只是介紹一種應用服務器的訪問代碼其它的不會提到,找這方面資料又比較麻煩,當誤大家許多時間和精力,因此我就把已經找到的代碼貼出來,方便大家查找。

            暫且提供以下三種服務器的代碼,今后再慢慢補充吧。

            下面是訪問Jboss 服務器的
            
            例子代碼:

    1Properties props = new Properties();
    2props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    3props.setProperty("java.naming.provider.url", "localhost:1099");
    4InitialContext = new InitialContext(props);
    5HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
    6

            
            下面是訪問Sun ApplicationServer 及glassfish 應用服務器的例子代碼:
            

    1Properties props = new Properties();
    2props.setProperty("java.naming.factory.initial",
    3"com.sun.enterprise.naming.SerialInitContextFactory");
    4props.setProperty("java.naming.provider.url", "localhost:3700");
    5InitialContext = new InitialContext(props);
    6HelloWorld helloworld = (HelloWorld) ctx.lookup("com.0735jb.ejb3.HelloWorld");


            下面是訪問Weblogic10 應用服務器的例子代碼:

    1Properties props = new Properties();
    2props.setProperty("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
    3props.setProperty("java.naming.provider.url", "t3://localhost:7001");
    4InitialContext = new InitialContext(props);
    5HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean
    6#com.0735jb.ejb3.HelloWorld");

     

            上面是服務器默認的JNDI命名規則,那么如何修改它呢.

            在Jboss 中要自定義JNDI 名稱,可以使
            用@LocalBinding 和@RemoteBinding 注釋,@LocalBinding 注釋指定Session Bean 的Local 接口的JNDI 名稱,
            @RemoteBinding 注釋指定Session Bean 的Remote 接口的JNDI 名稱,下面的代碼展示了如何自定義JNDI 名:

     

    1@Stateless
    2@Remote ({Operation.class})
    3@RemoteBinding (jndiBinding="0735jb/RemoteOperation")
    4@Local ({LocalOperation.class})
    5@LocalBinding (jndiBinding="0735jb/LocalOperation")

     

            在JSP 客戶端調用上面EJB 的代碼片斷如下:

    1InitialContext ctx = new InitialContext(props);
    2Operation operation = (Operation) ctx.lookup("0735jb/RemoteOperation");
    3在weblogic10 中,你可以通過@Stateless.mappedName()設置全局JNDI 名稱,如:
    4@Stateless(mappedName="OperationBeanRemote")
    5public class OperationBean implements Operation, LocalOperation {
    6


            客戶端調用EJB 的代碼片斷如下:

    1InitialContext ctx = new InitialContext(props);
    2Operation operation = (Operation) ctx.lookup("OperationBeanRemote#com.0735jb.ejb3.Operation");
    主站蜘蛛池模板: 精品久久久久成人码免费动漫| 亚洲伊人久久精品| 亚洲第一综合天堂另类专| 在线成人爽a毛片免费软件| 狠狠色伊人亚洲综合成人| 中文字幕不卡高清免费| 中文字幕亚洲日韩无线码| 一区二区三区在线观看免费| 亚洲精品岛国片在线观看| 日韩亚洲翔田千里在线| 国产免费无遮挡精品视频| 噜噜噜亚洲色成人网站| 亚洲国产精品尤物YW在线观看| 无套内谢孕妇毛片免费看看 | 一级毛片一级毛片免费毛片| 亚洲av中文无码| 国产精品黄页免费高清在线观看| 国产亚洲精品无码专区| 91成人免费福利网站在线| 亚洲av无码国产精品色午夜字幕| 免费A级毛片在线播放| avtt天堂网手机版亚洲| 卡一卡二卡三在线入口免费| 亚洲AV无码一区二区三区电影| www国产亚洲精品久久久| 亚洲AV无码成人精品区天堂 | 国产一级特黄高清免费大片| 四虎国产精品永免费| 亚洲精品无码MV在线观看| 亚洲视频在线免费看| 成人区精品一区二区不卡亚洲| 亚洲国产日韩成人综合天堂| 花蝴蝶免费视频在线观看高清版| 久久国产亚洲精品无码| 免费鲁丝片一级在线观看| 久久久久久久国产免费看| 亚洲人成网站在线观看播放青青| 日产国产精品亚洲系列| 免费91麻豆精品国产自产在线观看| 亚洲偷自精品三十六区| 亚洲日韩人妻第一页|