0

分散システムの基本的なJavaRMIチュートリアルをここでフォローしています:http://people.cs.aau.dk/~bnielsen/DS-E08/Java-RMI-Tutorial/

サーバー実装のコンパイルに問題があります。

エラーは次のとおりです。

RMIServer.java:5: cannot find symbol
symbol: class ServerInterface
public class RMIServer extends UnicastRemoteObject implements ServerInterface {
                                                          ^
1 error

これは私のサーバーの実装です:

package rmiTutorial; 
import java.rmi.server.UnicastRemoteObject; 
import java.rmi.*; 

public class RMIServer extends UnicastRemoteObject implements ServerInterface { 

  private String myString = " "; 

  //Default constructor 
  public RMIServer() throws RemoteException { 
    super(); 
  } 

  //inherited methods 
  public void setString(String s) throws RemoteException { 
    this.myString =s; 
  } 

  public String getString() throws RemoteException{ 
    return myString; 
  } 

  //main: instantiate and register server object 
  public static void main(String args[]){ 
    try{ 
      String name = "RMIServer"; 
      System.out.println("Registering as: \"" + name + "\""); 
      RMIServer serverObject = new RMIServer(); 
      Naming.rebind(name, serverObject); 
      System.out.println(name + " ready..."); 
    } catch (Exception registryEx){ 
      System.out.println(registryEx); 
    } 
  }  
}

ServerInterface:

package rmiTutorial;                                                                                
import java.rmi.*;

public interface ServerInterface {

  public String getString() throws RemoteException;
  public void setString(String s) throws RemoteException;

}

RMIServerクラスとServerInterfaceは両方とも同じパッケージに含まれています。私はチュートリアルを正確に実行したので、どうやってそれを破ることができたのか本当にわかりません!

どんな助けでも大歓迎です!ありがとう。

4

1 に答える 1

1

これらを別々にコンパイルしているのではないかと思います。チュートリアルはこれについて明確ではありませんが、これらを一緒にコンパイルする必要があります(最も単純な場合):

javac rmiTutorial/RMIServer.java rmiTutorial/ServerInterface.java

(必要に応じて他の適切なフラグを含む-libs、classpathなど)。

ServerInterfaceコンパイラがをビルドするときにを見つけることができるように、2つを一緒にコンパイルする必要がありますRMIServer。最初にコンパイルできますが、インターフェイスを見つけることができるように、適切なクラスパス参照を使用してコンパイルする必要があります。ServerInterfaceRMIServer

于 2012-11-28T11:12:20.453 に答える