オフサイトおよびローカルJava RMIコール


今日はオフサイトでjavaのあるクラスにアクセスし、Java RMIを使って、ネット上でいくつかの資料を検索しました.オフサイトに関するインスタンスは検索できません.すべてローカルに関するものです.この機会に乗じて、オフサイトでjavaのあるクラスにアクセスするインスタンスについて書きます.
ステップ1:
1.リモート・インタフェースのインタフェースを定義します.各メソッドは、RemoteException例外を生成すると宣言する必要があります.
import java.rmi.Remote;   
import java.rmi.RemoteException;   
public interface myProject extends java.rmi.Remote   //   Remote     
{   
       public String myLongDistanceInterface() throws RemoteException;   //    remote     
}  
 
2.インタフェースを実装するクラスを定義します.
import java.io.PrintStream;     
import java.rmi.*;     
import java.rmi.server.UnicastRemoteObject;     
       
public class actualizeMyProject extends UnicastRemoteObject   //   UnicastRemoteObject  implements myProject    
{     
        public actualizeMyProject() throws RemoteException     //      Remote               
        {     
         }     
      
        public String myLongDistanceInterface()     //     myProject          
        {     
            return "   ,      !";     
        }     
 }   
 
3つ目の手順を実行する前に、次の概念を理解してください.
RMIでは,クライアント上で生成された異動呼び出しパラメータと逆異動戻り値のコードを残根と呼ぶ.このコードを「メイン」と呼ぶ本もある.サーバで生成された逆異動呼び出しパラメータと、実際のメソッドで異動戻り値を呼び出すコードをフレームワークと呼びます.
3.RMICプログラムを使用してリモートインプリメンテーションに必要なルートStubとフレームワークを生成する.   2の
actualizeMyProject

コンパイルが完了すると、RMICコマンドを使用して残根Stubを生成できます.   Dosウィンドウで、actualizeMyProject.classのディレクトリに移動し、次のコマンドを実行します.   rmic actualizeMyProject
4、サーバーを作成します.
 
dsf
sdsdf
dsf
import java.rmi.*;
public class RMI_Server
{
    public static void main(String[] args)
    {
        try
        {
            actualizeMyProject  actualizeMyProject  = new actualizeMyProject ();                //        
            Naming.rebind("RMI_actualizeMyProject ", actualizeMyProject );      //  RMI       
            System.out.println(">>>>> RMI_Server
 Ready <<<<< ");
        }
        catch(Exception exception)
        {
            exception.printStackTrace();
        }
    }
}
 
5.RMI呼び出しのためのクライアントプログラムを作成します.
import java.rmi.*;
public class RMI_Client {
    public static void main(String[] args) {
        try
        {
           myProject myProject = (myProject) Naming.lookup("rmi://192.168.1.158:1099/RMI_actualizeMyProject");  //  RMI        
            System.out.println(myProject.myLongDistanceInterface());                        //         
        } catch (Exception e)
        {
          e.printStackTrace();
        }
    }

}

 プログラムはここまでほぼ完成したので、次のステップも簡単に省略することはできません.そうしないと、プログラムは走ることができません.
6.サービス側の仕事.
まずDOSでrmiregistryを実行     このコマンドはRMIの登録サービスを開始します.次に、RMI_を実行します.サーバクラスはrebingメソッドを呼び出してクラスをパブリッシュできます.サーバプログラムの実行  RMI_Server    ここで最もエラーが発生しやすいのは、次の注意事項を参照してください.
注意:         Stubクラスが見つからない場合は、java.exe-Djava.rmi.server.codebase=file:/C:/  RMI_Server
(時々Stub類があって、見つからないだけで、私もなぜか分かりませんが、ほほほ)
青文字部分はstubクラスのパスを指定します.
7.クライアントの動作.
ローカルで呼び出すなら、直接起動すればいいのですが、ここでは主にオフサイトで呼び出す注意点をいくつかお話しします.
インタフェースクラス、クライアントクラス、生成されたStubクラスをクライアントにコピーします.クライアントクラスを実行します.コンソールに「
   ,      !

”.呼び出しに成功したことを示します.
終わりだ!