我一直在尝试使用rmi实现服务注册。它展示了一个在客户端和服务器之间远程控制的灯泡。
这是我的灯泡界面:
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{}
}
这是我尝试实现RMILightBulb接口的地方:
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;
}
}
尝试编译时,我收到此错误:
error: RMILightBulbImpl is not abstract does not override abstract method isOn() in RMILightBulb
我尝试过使用@Override注释但仍遇到此问题。对此的任何帮助将不胜感激。
答案 0 :(得分: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死了。世界已转向网络服务,因为简单而开放的胜利。