2017-11-05 17 views
-1

私はrmiを使用してサービス登録を実装しようとしています。これは、クライアントとサーバーの間でリモートで制御される電球を示すものです。解決できないインターフェイス実装エラー

public class RMILightBulbImpl extends java.rmi.server.UnicastRemoteObject 
    implements RMILightBulb { 

    public RMILightBulbImpl() throws java.rmi.RemoteException{ 

      setBulb(false); 
    } 

    private boolean lightOn; 

    public void on() throws java.rmi.RemoteException{ 
     setBulb(true); 
    } 

    public void off() throws java.rmi.RemoteException{ 
     setBulb(false); 
    } 


    public boolean isOn() throws java.rmi.RemoteException{ 
     return getBulb(); 
    } 

    public void setBulb(boolean value){ 
     lightOn = value; 
    } 

    public boolean getBulb(){ 
     return lightOn; 
    } 


} 

これをコンパイルしようと、私はこのエラーを取得する:私はRMILightBulbインターフェイスを実装しようとどこ

public interface RMILightBulb extends java.rmi.Remote{ 

     public void on() throws java.rmi.RemoteException{} 
     public void off() throws java.rmi.RemoteException{} 
     public boolean isOn() throws java.rmi.RemoteException{} 
} 

これは、次のとおりです。

は、これは私の電球インタフェースです

error: RMILightBulbImpl is not abstract does not override abstract method isOn() in RMILightBulb 

@Override注釈を使用しようとしましたが、まだこの問題が発生しています。これに関する助けがあれば大いに感謝します。

+0

あなたは完全な 'RMILightBulbImpl'コードを追加できますか?現状では、それは実際には抽象的なものですが、コンパイルされないという事実はもちろんですが、 – asgs

+0

RMILightBulbImplコード –

+0

が追加されました.Duffymoが指摘しているように、インターフェイスメソッドは抽象ではありません。 – asgs

答えて

2

間違っています。

public interface RMILightBulb extends java.rmi.Remote { 

     void on() throws java.rmi.RemoteException; 
     void off() throws java.rmi.RemoteException; 
     boolean isOn() throws java.rmi.RemoteException; 
} 

なぜRMIで気になるのですか? CORBAは死んでいる。シンプルでオープンな勝利のため、世界はWebサービスに移行しました。

+1

メソッドの最後に{}を削除しました。 JDK 8とデフォルトを使用していない限り、実装はありません。 – duffymo

+0

私の研究の一環としてRMIを探る –

+1

なぜ時間を浪費して間違ったことを勉強していますか? RMIやアプレットを気にしないでください。 – duffymo

関連する問題