Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > RMI Objects Help

Reply
Thread Tools

RMI Objects Help

 
 
rajatag
Guest
Posts: n/a
 
      02-03-2007
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());
}
}
}

 
Reply With Quote
 
 
 
 
jupiter
Guest
Posts: n/a
 
      02-04-2007

"rajatag" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
> 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
>

I don't know RMI, Rajat, but it appears as though TreeServer_Stub
should be declared as abstract, not final. Yes, no?

You either have to declare it as abstract or fulfill the contract
of implementing the methods.

I think.


 
Reply With Quote
 
 
 
 
rajatag
Guest
Posts: n/a
 
      02-04-2007
Not sure about this .... seem to have implemented the methods as
required.

 
Reply With Quote
 
Patrick May
Guest
Posts: n/a
 
      02-04-2007
"rajatag" <(E-Mail Removed)> writes:
> I'm having a little problem with compiling the RMI Stub.


Can you move to Java 1.5 to eliminate the need for an explicit
stub class?

Regards,

Patrick

------------------------------------------------------------------------
S P Engineering, Inc. | Large scale, mission-critical, distributed OO
| systems design and implementation.
http://www.velocityreviews.com/forums/(E-Mail Removed) | (C++, Java, Common Lisp, Jini, middleware, SOA)
 
Reply With Quote
 
Lew
Guest
Posts: n/a
 
      02-04-2007
"rajatag" <(E-Mail Removed)> writes:
>> I'm having a little problem with compiling the RMI Stub.


Patrick May wrote:
> Can you move to Java 1.5 to eliminate the need for an explicit
> stub class?


Java 5 is almost two-and-a-half years old. Java 6 is out. Java 1.3 has already
passed its "End of Life". Java 1.4, over five years old, is next to go.

Enterprises rush out to get the latest version of Windows, of MS development
tools and the like. But they hang on to obsolete and moribund Java versions
longer than the involved managers would keep their cars.

- Lew
 
Reply With Quote
 
rajatag
Guest
Posts: n/a
 
      02-04-2007
Hi,

We are using Java 1.5 .... The error comes up when try to run the rmic
command

Regards,
Rajat

 
Reply With Quote
 
rajatag
Guest
Posts: n/a
 
      02-04-2007
Hi,

I solved the problem by transferring the Nodes class to outside the
TreeServer package.

Thanks!

Regards,
Rajat


 
Reply With Quote
 
Esmond Pitt
Guest
Posts: n/a
 
      02-04-2007
rajatag wrote:

> I solved the problem by transferring the Nodes class to outside the
> TreeServer package.


Actually you solved the problem by forcing TreeInterface.java to be
recompiled. You had some date problem which made the out-of-date object
file with the old definition of getChild() look to be newer than the source:

old definition as per the compiler error message:

Object getChild(char, TreeServer.Nodes, short,
java.lang.String)

new definition as per your source code:

Nodes getChild(char c, Nodes nod, short difficulty, String
dictionary)
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
class objects, method objects, function objects 7stud Python 11 03-20-2007 06:05 PM
help needed passing objects from rmi server to application steve Java 0 06-15-2005 11:35 PM
Why does java.rmi.Naming not implement interface java.rmi.Registry? Jan Schulze Java 1 03-26-2005 07:45 AM
RMI Vs RMI over IIOP JScoobyCed Java 1 01-28-2005 09:54 AM
RMI, JINI or RMI/IIOP Buu Nguyen Java 1 08-25-2004 11:28 AM



Advertisments