wood burning stoves*
The moose likes Distributed Java and the fly likes no-JRMP server at remote endpoint Error Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Distributed Java
Bookmark "no-JRMP server at remote endpoint Error" Watch "no-JRMP server at remote endpoint Error" New topic
Author

no-JRMP server at remote endpoint Error

michael modenese
Greenhorn

Joined: Mar 22, 2006
Posts: 12
Hello
i am trying this code:

int PORT_SSL = 2019;
Registry registrySSL = LocateRegistry.createRegistry(PORT_SSL, new SslRMIClientSocketFactory(), new SslRMIServerSocketFactory());
HelloImpl objSSL = new HelloImpl(PORT_SSL, new SslRMIClientSocketFactory(), new SslRMIServerSocketFactory());
// not null :
Registry temp = LocateRegistry.getRegistry(PORT_SSL);
// does not work: ???
Naming.rebind("rmi://localhost:" + PORT_SSL + "/" + "HelloServer", objSSL);
// does work !!!
registrySSL.rebind("HelloServer", objSSL);

and get the Exception:
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at ServerStarter.main(ServerStarter.java:37)

but isn't Naming.rebind() supposet to just delegate the call to Registry.rebind() ?
What am i missing ? What is the deal with SSLSocketFactories ?

Help appreciated

Michael





Chinna Eranna
Ranch Hand

Joined: Dec 08, 2009
Posts: 174

A snippet from.. http://java.sun.com/j2se/1.4.2/docs/guide/rmi/getstart.doc.html


Naming.rebind("//myhost/HelloServer", obj);

Note the following about the arguments to the rebind method call:

* The first parameter is a URL-formatted java.lang.String, representing the location and name of the remote object.

1) No protocol needs to be specified in the URL-formatted string.
2) You will need to change the value of myhost to be the name or IP address of your server machine; otherwise, the remote object host defaults to the current host. For example, "HelloServer" is a valid name string that refers to a remote object bound to the name HelloServer, running on the local host.
3) Optionally, a port number can be supplied in the URL-formatted string. Specifying the port number is necessary when the registry that needs to be contacted is running on a port other than the default port, 1099. For example, "//myhost:1234/HelloServer" is a valid name string for the HelloServer remote object, reachable through an RMI registry that is running on the host myhost and is listening for incoming calls on port 1234.


- Chinna
michael modenese
Greenhorn

Joined: Mar 22, 2006
Posts: 12
Hello Chinna

thank you for your reply.
I've tried your suggestions. Unfortunately with no success. Still got the
java.rmi.ConnectIOException: non-JRMP server at remote endpoint

May i point out that the same code, but WITHOUT SSL-Factories ist working fine (even with "rmi://"):

int PORT_BARE = 2029;
Registry registry = LocateRegistry.createRegistry(PORT_BARE);
HelloImpl objBARE = new HelloImpl(PORT_BARE);
// works fine:
Naming.rebind("rmi://localhost:" + PORT_BARE + "/" + "HelloServer", objBARE);
// registry.rebind("HelloServer", objBARE);

So i recon the point must be somehow in the SSLSocketFactories. But i cant figure out what the type of the SocketFactories has to do with the binding mechanism.

Any idea ?

Thanks

Michael



Robert Rarr
Greenhorn

Joined: Apr 10, 2014
Posts: 3
Hi, has this been solved in the end, or did you give up?

I have a similar issue, where the non-ssl code works fine, yet the other code does not.
 
Don't get me started about those stupid light bulbs.
 
subject: no-JRMP server at remote endpoint Error
 
Similar Threads
Any difference??
RMI Server help please
RMI SSL Server failing silently on startup after 60s
RMI Example
RMI Exception