R
rajatag
Hi,
I'm having a little problem with compiling the RMI Stub. Getting the
following error. Have attached all relevant source code below. Hope
someone can help!
Thanks,
Rajat
ERROR
======
D:\Projects\TreeServer\TreeServer_Stub.java:6: class
TreeServer.TreeServer_Stub must be declared abstract. It does not
define java.lang.Object getChild(char, TreeServer.Nodes, short,
java.lang.String) from interface TreeInterface.TreeInterface.
public final class TreeServer_Stub
===========
TreeServer.java
===========
package TreeServer;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import TreeInterface.*;
public class TreeServer extends UnicastRemoteObject implements
TreeInterface {
static final long serialVersionUID = 10000;
NodeManagement nm = new NodeManagement();
public static void main(String[] args) {
try {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
TreeServer q = new TreeServer();
Naming.rebind("rmi://localhost/TreeService", q); // sets the
// handle
System.out.println("Start Main RMI Server");
} catch (RemoteException er) {
System.out.println("Exception in Main RMI Server: " + er);
} catch (Exception err) {
System.out.println("Exception occurred: " + err);
}
}
public TreeServer() throws RemoteException {
// do the init here.
super();
}
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary)
throws RemoteException {
return nm.getChild(c, nod, difficulty, dictionary);
}
}
=============
Nodes.java
=============
package TreeServer;
public class Nodes{
public char letter;
public int first_Child_offset = 1000;
public boolean isTerminal = true;
public boolean isLastSibling = true;
public int NodeNo;
public Nodes() {
}
public Nodes(int NodeNo, char letter, boolean isTerminal,
int first_Child_offset, boolean isLastSibling) {
this.NodeNo = NodeNo;
this.letter = letter;
this.isLastSibling = isLastSibling;
this.first_Child_offset = first_Child_offset;
this.isLastSibling = isLastSibling;
this.isTerminal = isTerminal;
}
}
=================
NodeManagement.java
=================
package TreeServer;
import java.io.*;
import java.util.*;
public class NodeManagement {
public NodeManagement() {
}
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary) {
/// this returns a node object. code is just too big to paste here.
}
}
=============
TreeInterface.java
=============
package TreeInterface;
import java.rmi.*;
import TreeServer.*;
public interface TreeInterface extends java.rmi.Remote {
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary)
throws RemoteException;
}
============
TreeClient.java
============
package TreeClient;
import java.rmi.*;
import TreeInterface.*;
import TreeServer.Nodes;
public class TreeClient {
TreeInterface rq;
public TreeClient() {
try {
rq = (TreeInterface) Naming.lookup("rmi://localhost/TreeService");
} catch (Exception e) {
e.printStackTrace();
}
}
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary) {
try {
return rq.getChild(c, nod, difficulty, dictionary);
} catch (Exception e) {
return (new Nodes());
}
}
}
I'm having a little problem with compiling the RMI Stub. Getting the
following error. Have attached all relevant source code below. Hope
someone can help!
Thanks,
Rajat
ERROR
======
D:\Projects\TreeServer\TreeServer_Stub.java:6: class
TreeServer.TreeServer_Stub must be declared abstract. It does not
define java.lang.Object getChild(char, TreeServer.Nodes, short,
java.lang.String) from interface TreeInterface.TreeInterface.
public final class TreeServer_Stub
===========
TreeServer.java
===========
package TreeServer;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import TreeInterface.*;
public class TreeServer extends UnicastRemoteObject implements
TreeInterface {
static final long serialVersionUID = 10000;
NodeManagement nm = new NodeManagement();
public static void main(String[] args) {
try {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
TreeServer q = new TreeServer();
Naming.rebind("rmi://localhost/TreeService", q); // sets the
// handle
System.out.println("Start Main RMI Server");
} catch (RemoteException er) {
System.out.println("Exception in Main RMI Server: " + er);
} catch (Exception err) {
System.out.println("Exception occurred: " + err);
}
}
public TreeServer() throws RemoteException {
// do the init here.
super();
}
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary)
throws RemoteException {
return nm.getChild(c, nod, difficulty, dictionary);
}
}
=============
Nodes.java
=============
package TreeServer;
public class Nodes{
public char letter;
public int first_Child_offset = 1000;
public boolean isTerminal = true;
public boolean isLastSibling = true;
public int NodeNo;
public Nodes() {
}
public Nodes(int NodeNo, char letter, boolean isTerminal,
int first_Child_offset, boolean isLastSibling) {
this.NodeNo = NodeNo;
this.letter = letter;
this.isLastSibling = isLastSibling;
this.first_Child_offset = first_Child_offset;
this.isLastSibling = isLastSibling;
this.isTerminal = isTerminal;
}
}
=================
NodeManagement.java
=================
package TreeServer;
import java.io.*;
import java.util.*;
public class NodeManagement {
public NodeManagement() {
}
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary) {
/// this returns a node object. code is just too big to paste here.
}
}
=============
TreeInterface.java
=============
package TreeInterface;
import java.rmi.*;
import TreeServer.*;
public interface TreeInterface extends java.rmi.Remote {
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary)
throws RemoteException;
}
============
TreeClient.java
============
package TreeClient;
import java.rmi.*;
import TreeInterface.*;
import TreeServer.Nodes;
public class TreeClient {
TreeInterface rq;
public TreeClient() {
try {
rq = (TreeInterface) Naming.lookup("rmi://localhost/TreeService");
} catch (Exception e) {
e.printStackTrace();
}
}
public Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary) {
try {
return rq.getChild(c, nod, difficulty, dictionary);
} catch (Exception e) {
return (new Nodes());
}
}
}