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

          EJB原理學習_RMIC

          Posted on 2007-12-05 15:39 G_G 閱讀(1378) 評論(1)  編輯  收藏 所屬分類: EJB
          EJB原理,有幸在 Q群上‘☆藍藍心情★’ 得以一教;
          特在次鄭重的道一聲 謝謝了.大哥

          在次我就分享給大家,本人語言組織能力有限,
          說的不好可別怪我大哥啊。(呵呵)

          EJB技術對
          傳輸上進行封裝,使程序員不需要關心太多網絡問題。服務器都基于統一javabean操作的
          在這就是基于 rmic 命令,和 rmiregistry 端口 來實現的。
          rmic 和 rmiregistry 這些都在%JAVA_HOME%/bin下可以找到。
          下面我就用大哥給寫的一段 沒用EJB容器 的代碼來和大家分享EJB原理:


          1.rmic命令介紹:
          引用:? http://www.iplab.cs.tsukuba.ac.jp/liuxj/jdk1.2/zh/docs/tooldocs/solaris/rmic.html
          rmic 編譯器根據編譯后的 Java 類(含有遠程對象實現)名,為遠程對象生成 stub 和 skeleton(遠程對象是指實現 java.rmi.Remote 接口的對象)。
          rmic 命令中所給的類必須是經 javac 命令成功編譯且是完全包限定的類。例如,按如下所示對類文件名 HelloImpl 運行 rmic


          2.EJB組建(服務器端

          接口:
          package?org.rmi.test;

          import?java.rmi.Remote;
          import?java.rmi.RemoteException;

          public?interface?IHello?extends?Remote?{
          ????
          public?String?sayHello(String?name)?throws?RemoteException;
          }

          實現類:
          package?org.rmi.test;

          import?java.rmi.Naming;
          import?java.rmi.RemoteException;
          import?java.rmi.server.UnicastRemoteObject;
          //取消顯示指定的編譯器警告!
          //參考 : http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/lang/SuppressWarnings.html

          @SuppressWarnings(
          "serial")
          public?class?Hello?extends?UnicastRemoteObject?implements?IHello?{
          ????
          public?Hello()?throws?RemoteException?{
          ????????
          super();
          ????}
          ????
          ????
          public?void?rebind(String?name)?{?
          ????????
          try?{
          ????????????Naming.rebind(name,
          this);
          ????????????System.out.println(
          "Server?is?running");
          ????????}?
          catch(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}
          ????
          public?String?sayHello(String?name)?throws?RemoteException?{
          ????????return?"Hello?"+name+"?This?is?processed?by?RMI";
          ????}

          }

          上面的繼承
          java.rmi.Remote 和可序列化的感覺是一樣的;在網絡中轉成流格式后,便與傳輸。

          3. jdk1.5編譯和
          rmic 編譯
          ?1)javac .....
          ?2)rmic? rmic org.rmi.test.Hello(后得到 Hello_Stub.class)

          4.服務器開啟:
          在項目根目錄下加 rmi.policy
          grant?{
          ??Permission?java.security.AllPermission?
          "","connect,listen,accept";
          };

          后運行:
          package?org.rmi.test;

          import?java.rmi.RMISecurityManager;

          public?class?Start?{

          ????
          public?static?void?main(String[]?args)?{
          ????????try?{
          ????????????System.setSecurityManager(
          new?RMISecurityManager());
          ??????????? //這里還不太明白
          ????????????
          new?Hello().rebind("RMI/Mclaren");
          ????????}?
          catch(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}

          }

          5.開端口:

          rmiregistry 1099? (開 端口)


          客戶端:(另臺電腦也可以了)
          import?java.rmi.Naming;
          import?org.rmi.test.IHello;

          public?final?class?Client?{
          ????
          public?static?void?main(String[]?args)?{
          ????????try?{
          ????????????IHello?hello?
          =?(IHello)Naming.lookup("rmi://localhost:1099/RMI/Mclaren");
          ????????????System.out.println(hello.sayHello(
          "Mclaren"));
          ????????}?
          catch(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}

          }


          結果是:
          Hello Mclaren This is processed by RMI


          評論

          # re: EJB原理學習_RMIC  回復  更多評論   

          2007-12-05 15:41 by G_G
          在次感謝 ‘☆藍藍心情★’ 細心的幫助

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


          網站導航:
           
          主站蜘蛛池模板: 金秀| 隆化县| 闵行区| 昔阳县| 十堰市| 永登县| 南皮县| 永泰县| 洞头县| 金湖县| 特克斯县| 和硕县| 双桥区| 徐水县| 铜梁县| 黄骅市| 德州市| 清河县| 个旧市| 桐城市| 霍城县| 靖江市| 文昌市| 涞源县| 绍兴市| 永州市| 瑞丽市| 满城县| 石泉县| 尖扎县| 霍邱县| 洪雅县| 乐都县| 衢州市| 百色市| 襄城县| 霍邱县| 河间市| 皋兰县| 张家界市| 寿光市|