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

          EJB小例

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

          在此特別感謝:sql技術群主 ☆藍藍心情★
          謝謝在中午遠程教我 EJB
          原理參考:EJB原理學習_RMIC
          這可能是我第一個EJB 和大家分享:
          環境:jboss+ejb+jdk5.0


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



          EJB組件:
          接口

          package ?org.test;

          import ?javax.ejb.Remote;

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


          實現類

          package ?org.test;

          import ?javax.ejb.Stateless;

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

          @Stateless
          //設置遠程JNDI名字(設置遠程JNDI名字,客戶端在通過JNDI lookup的時候,用的就是這個名字)
          //不同中間件的實現,默認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();
          ????????}
          ????}

          }

          結果是:
          Hello EJB 3.0 Test





          評論

          # re: EJB小例  回復  更多評論   

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

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

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


          網站導航:
           
          主站蜘蛛池模板: 阜南县| 迭部县| 额济纳旗| 万安县| 板桥市| 武宁县| 高青县| 衡南县| 上饶县| 孝感市| 平乡县| 班戈县| 孝昌县| 石楼县| 龙门县| 吉水县| 岑巩县| 海盐县| 马龙县| 黑山县| 电白县| 镇坪县| 平陆县| 南安市| 西华县| 理塘县| 陆良县| 青海省| 南陵县| 余江县| 铅山县| 定远县| 徐州市| 芮城县| 通州区| 丹巴县| 治县。| 乌兰察布市| 鲁山县| 常熟市| 东乡族自治县|