4 Replies Latest reply on Jan 26, 2009 4:28 PM by Jesse Driver

    Can custom APIs be bound in the RMI Registry started by JBos

    Venkatramanan Vasan Newbie

      Team

      This is Venkatramanan, a developer from AdventNet WebNMS (http://www.adventnet.com/products/webnms/index.html).
      When we used JBoss 5Beta 4 to deploy, we found the below issue.

      We started the default JBoss & ensured that RMI registry was running (Port 1099 & 1098 was listening). But when we tried to bind our APIs using Naming.Bind , it threw the following exception:

      FileServer: non-JRMP server at remote endpoint
      java.rmi.ConnectIOException: non-JRMP server at remote endpoint
       at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:217)
       at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
       at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
       at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
       at java.rmi.Naming.rebind(Naming.java:160)
       at FileServer.main(FileServer.java:11)

      Code we used is a simple one & a sample implementation from SUN's RMI code - http://java.sun.com/developer/technicalArticles/RMI/rmi_corba - File transfer using RMI
      FileInterface fi = new FileImpl("FileServer");
      Naming.bind("//127.0.0.1/FileServer", fi);

      Even variations "like <IP_Address>/FileServer" or "localhost/FileServer" did not work.
      When we searched with the stack trace, we found from an http://mail-archive.objectweb.org/proactive/2005-01/msg00009.html that:

      "Romain" wrote:
      You can have a look at http://www.jboss.org/index.html?module=bb&op=viewtopic&t=27490 or go to JBOSS web site at search in the forums for rmi registry.
      Unless I misunderstood everything, you cannot use JBOSS as RMI Registry(i.e by just starting the server). Of course I am pretty sure that it is possible to start it in a separate process: in a Servlet for instance, or maybe to start it as a service, but for sure with the default configuration, when starting the server, there is no RMI Registry running by default

      But I found that in JMXConnectorServerService.java, LocateRegistry.createRegistry is called. (But I doubt whether this source is called at all)
      He has also referred a JBoss Forum http://www.jboss.org/index.html?module=bb&op=viewtopic&t=27490
      Now can we understood this as "The registry started with JBoss cannot be used for binding Custom APIs. Atleast does it means that we have to do some more special configuration or source change to bind custom APIs in JBoss' RMI registry?"

      Kindly clarify

      Thanks & regards
      Venkatramanan