posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          EJB小例

          Posted on 2007-12-05 16:01 G_G 閱讀(984) 評論(1)  編輯  收藏 所屬分類: EJB

          在此特別感謝:sql技術(shù)群主 ☆藍藍心情★
          謝謝在中午遠(yuǎn)程教我 EJB
          原理參考:EJB原理學(xué)習(xí)_RMIC
          這可能是我第一個EJB 和大家分享:
          環(huán)境:jboss+ejb+jdk5.0


          需要jar包
          注:Client中 Test.jar 就是 EJBTest(服務(wù)器打的包)



          EJB組件:
          接口

          package ?org.test;

          import ?javax.ejb.Remote;

          //在我的EJB原理中介紹
          //是可以被
          rmic 的接口
          @Remote
          public ? interface ?IHello?{
          ????
          public ?String?sayHello(String?name);
          }


          實現(xiàn)類

          package ?org.test;

          import ?javax.ejb.Stateless;

          import ?org.jboss.annotation.ejb.RemoteBinding;

          @Stateless
          //設(shè)置遠(yuǎn)程JNDI名字(設(shè)置遠(yuǎn)程JNDI名字,客戶端在通過JNDI lookup的時候,用的就是這個名字)
          //不同中間件的實現(xiàn),默認(rèn)JNDI名字是不一樣的,所以不一定是***/Remote或***/Local
          //RemoteBinding是 jboss特有的
          @RemoteBinding(jndiBinding
          = " MclarenEJB " )
          public ? class ?Hello? implements ?IHello?{
          ????
          public ?String?sayHello(String?name)?{
          ????????
          return ? " Hello? " + name;
          ????}
          }


          jdk編輯+打包成jar后熱部署到%JBOSS_HOME%\server\default\deploy


          客戶端:

          import ?java.util.Properties;

          import ?javax.naming.Context;
          import ?javax.naming.InitialContext;

          import ?org.test.IHello;


          public ? class ?Client?{

          ????
          public ? static ? void ?main(String[]?args)?{
          ????????
          try ?{
          ?????????Properties?props? = ? new ?Properties();
          ?????????props.put(
          " java.naming.factory.initial " ,? " org.jnp.interfaces.NamingContextFactory " );
          ?????????props.put(
          " java.naming.provider.url " ,? " jnp://localhost:1099 " );
          ?????????props.put(
          " java.naming.factory.url.pkgs " ,? " org.jboss.naming:org.jnp.interfaces " );

          ?????????Context?context?
          = ? new ?InitialContext(props);

          ?????????IHello?h?
          = ?(IHello)?context.lookup( " MclarenEJB " );
          ?????????System.out.println(h.sayHello(
          " EJB?3.0?Test " ));
          ????????}?
          catch (Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}

          }

          結(jié)果是:
          Hello EJB 3.0 Test





          評論

          # re: EJB小例  回復(fù)  更多評論   

          2007-12-05 16:23 by G_G
          大哥說:

          Skynet :
          RemoteBinding 那他的用途是什么?
          ☆藍藍心情★ 16:19:57
          Jboss的對JPA的實現(xiàn)采用Hibernate,而其他的公司,如bea,sun等的實現(xiàn)采用的oracle公司的 toplink
          Skynet 16:20:02
          RemoteBinding 那他的用途是什么?
          ☆藍藍心情★ 16:20:22
          你以前搞過Hibernate,就到j(luò)boss的JPA實現(xiàn)上展示下身手
          ☆藍藍心情★ 16:20:35
          設(shè)置遠(yuǎn)程JNDI名字
          ☆藍藍心情★ 16:20:57
          所以客戶端在通過JNDI lookup的時候,用的就是這個名字
          ☆藍藍心情★ 16:21:33
          不同中間件的實現(xiàn),默認(rèn)JNDI名字是不一樣的,所以不一定是***/Remote或***/Local
          ☆藍藍心情★ 16:22:00
          相當(dāng)于我們今天RMI的那個serviceName一樣
          ☆藍藍心情★ 16:22:07
          bind方法的參數(shù)

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 江孜县| 桂平市| 永宁县| 资兴市| 石首市| 岱山县| 巫山县| 罗平县| 南汇区| 枣阳市| 顺义区| 义乌市| 新干县| 崇明县| 浙江省| 冀州市| 萝北县| 成都市| 广州市| 特克斯县| 鹤庆县| 那曲县| 城口县| 麻阳| 和龙市| 秀山| 汝城县| 南丰县| 萍乡市| 衡阳市| 五台县| 吴堡县| 惠来县| 双鸭山市| 祁阳县| 军事| 克东县| 治县。| 分宜县| 宁远县| 合作市|