<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      用RMI實現J2EE分佈試應用之試驗手記

      [摘要]//*****************************************//* 用RMI實現J2EE分佈試應用之試驗手記//* 試驗人:火火火//* EMAIL :jun_bai@sohu.com//* 試驗時間:2001/12/22 下午 于虎門大板地//*************...
      //*****************************************
      //* 用RMI實現J2EE分佈試應用之試驗手記
      //* 試驗人:火火火
      //* EMAIL :jun_bai@sohu.com
      //* 試驗時間:2001/12/22 下午 于虎門大板地
      //*****************************************
      //遠程方法調用(RMI)機制可以把面向對象的思想進一步擴展,因為你可以調用
      //的對象不僅可以在本機上,也可以在別的主機上。本文就簡單介紹rmi的編程方法。
      //下面就通過一個例子來說明編寫的過程。
      //  
      //*1.編寫服務器的接口:這一步是最主要的部分,因為接口是連接客戶機
      //*與服務器的關鍵部分。在這個例子中,接口很簡單,代碼如下:Rem.java
      //************************************************************************
      //*Rem.java
      //************
      import java.rmi.*;
      public interface Rem extends Remote
      {
      public String getMessage() throws RemoteException;
      public String getAuthor() throws RemoteException;
      }
      //************************************************************************

      //*************************************
      //*2.編寫服務器對象:RemServer.java
      //************************************************************************
      //*RemServer.java
      //****************
      import java.rmi.*;
      import java.net.*;
      public class RemServer
      {
      public static void main(String[] args)
      {
      try
      {
      RemImpl localObject = new RemImpl();
      Naming.rebind("rmi://localhost/Rem",localObject);
      }catch(RemoteException re)
      {
      System.out.println("RemoteException:"+re);
      }
      catch(MalformedURLException mfe)
      {
      System.out.println("MalformedURLException:"+mfe);
      }
      }
      }
      //************************************************************************


      //*************************************
      //*3.編寫創建服務器對象的服務器程序:RemImpl.java
      //************************************************************************
      //*RemImpl.java
      //************
      import java.rmi.*;
      import java.rmi.server.*;
      public class RemImpl extends UnicastRemoteObject implements Rem
      {
      public RemImpl() throws RemoteException
      {
      }
      public String getMessage() throws RemoteException
      {
      return "Here is a remote message.";
      }
      public String getAuthor() throws RemoteException
      {
      return "fancy.";
      }
      }

      //************************************************************************


      //*************************************
      //*4.編寫客戶端代碼:RemClient.java
      //************************************************************************
      //*RemClient.java
      //************
      import java.rmi.* ;
      import java.net.* ;
      import java.io.*;

      public class RemClient
      {
       public static void main(String[] args)
       {
      try
      {
      String host =(args.length>0)?args[0]:"192.1.1.23"; //改為你的RMI遠程務器的IP地址.
      Rem remObject=(Rem)Naming.lookup("rmi://"+ host +"/Rem");
      System.out.println(remObject.getMessage()+"<br>");
      System.out.println(remObject.getAuthor());
      }
      catch(RemoteException re)
      {
      System.out.println("RemoteException:" + re);
      }
      catch(NotBoundException nbe)
      {
      System.out.println("NotBoundException:" + nbe);
      }
      catch(MalformedURLException mfe)
      {
      System.out.println("MalformedURLException:" + mfe);
      }
      }
      }
      //************************************************************************


      //*************************************
      //*5.編寫JSP客戶端代碼:Rem.jsp
      //************************************************************************
      //*Rem.jsp
      //************

      <%@ page import="java.rmi.*" %>
      <%@ page import="java.net.*" %>
      <%@ page import="java.io.*"%>
      <%@ page import="Rem"%>

      <%
      try{
      String host ="192.1.1.23" ;//改為你的RMI遠程務器的IP地址.
      Rem remObject=(Rem)Naming.lookup("rmi://"+ host +"/Rem");
      out.println(remObject.getMessage()+"<br>");
      out.println(remObject.getMessage());
      }
      catch(RemoteException re)
      {
      out.println("RemoteException:" + re);
      }
      catch(NotBoundException nbe)
      {
      out.println("NotBoundException:" + nbe);
      }
      catch(MalformedURLException mfe)
      {
      out.println("MalformedURLException:" + mfe);
      }
      %>
      //************************************************************************


      /*
      //************************************************************************
      步驟說明:(假設你的JDK安裝在C:\jdk1.3.0_01下)
      1.編譯javac_RemSverver.bat服務器端代碼
      c:\> C:\jdk1.3.0_01\bin\javac RemServer.java
      2.編譯RemImpl.java編寫創建服務器對象的服務器程序
      c:\> C:\jdk1.3.0_01\bin\rmic RemImpl
      將會自動產生RemImpl_Skel.class,RemImpl_Stub.class兩個文件.
      3.運行rmiregistry程序,啟動注冊系統,使得服務器可以注冊在機器上,以供客戶調用。
       c:\> start C:\jdk1.3.0_01\bin\rmiregistry
      4.編譯javac_RemClient.bat客戶端代碼
      c:\> C:\jdk1.3.0_01\bin\javac RemClient.java
      5.運行服務器程序RemServer.class
      c:\> start C:\jdk1.3.0_01\bin\java RemServer
      6.運行客戶程序RemClient.class
      c:\> C:\jdk1.3.0_01\bin\java RemClient
      在DOS可以看到結果:
      Here is a remote message.
      fancy.
      7.運行JSP客戶程序Rem.jsp
      要將Rem.class,RemImpl_Stub.class兩個文件拷貝到Rem.jsp客戶端的classpass(WEB-INFO)
      下,確保可以被Rem.jsp找到.
      在IE可以看到結果:
      Here is a remote message.
      fancy.

      全文完.





      參考書籍:
      編程高手成長之路6---JSP高級編程第4章2小節 ;
      //************************************************************************
      */






      日韩精品一区二区三区高清