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

          EJB原理學習_RMIC

          Posted on 2007-12-05 15:39 G_G 閱讀(1380) 評論(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
          在次感謝 ‘☆藍藍心情★’ 細心的幫助

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


          網站導航:
           
          主站蜘蛛池模板: 嘉峪关市| 故城县| 吉隆县| 平顺县| 惠州市| 通道| 乐都县| 清镇市| 金塔县| 崇州市| 长治县| 工布江达县| 封丘县| 忻州市| 广西| 尉氏县| 金坛市| 禄丰县| 凤台县| 灌南县| 松滋市| 孙吴县| 京山县| 麦盖提县| 望江县| 册亨县| 镇巴县| 梁平县| 海门市| 梁山县| 县级市| 永和县| 辉县市| 云和县| 巴彦县| 阳曲县| 囊谦县| 临猗县| 措勤县| 浮梁县| 汾西县|