Why do i get a RMI ConnectException ?

i have a simple client server application where the server class is implemented by
a class called AgentA, as shown below. Agent A will provide a form to the client when the getForm() method is invoked by the client. the program runs fine on my PC at home which runs on windows xp, but it doenst run on linux.
/**SERVER CLASS*/
import java.rmi.server.UnicastRemoteObject;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.*;
public class AgentA extends UnicastRemoteObject implements HasDataInterface {
     /** exports object, to allow it to receive incoming client requests*/
     public AgentA()throws RemoteException{
          super();
          System.out.println("Creating server Object");
/** returns an input form to the client when invoked */
     public void getForm() throws RemoteException{
          System.out.println(" get form");
/** instantiates the input form, where the form is a simple
gui type form
          Form f = new Form();
public static void main(String args[]){
     try{
          AgentA ag= new AgentA();
/**this line doesnt work properly i think*/
          Naming.rebind("rmi://138.37.94.101:5577/Server",ag);
               System.out.println("Server Ready");     
          catch(Exception e){
               System.out.println("error : " + e.getMessage());
          System.out.println("finish");
The Server program (Agent A) prints 'finish' but never terminates.
Ive tried to use the folowing replacements:
Naming.rebind("rmi://:5577/Server",ag);
Naming.rebind("rmi://ip address:5577/Server",ag);
i have also tried using the bind() method instead but this doesnt make any differnce.
Naming.rebind("rmi://ip address:5577/Server",ag);
i get this error when i compile my client class
Connection refused to host: 138.37.94.101; nested exception is:
java.net.ConnectException: Connection refused
I would very much appreciate if some one could put me out of my misery!!!
cheers
Kaleem

Sorry for not mentioning it before, but at the moment for simplicity reasons i am running the client and server program on the same PC. So the form at the moment will be displayed to me, as the server and client programs are on the same machine. Obviously i need to change this in the future. I randomly chose port 5577, as this was a port unused on my linux machine which is running over a network. The default port 1099 was already in use, so i chose 5577. I am still baffled why the Naming call isnt working on linux. I thought that the Naming call's format was as follows :
Naming.rebind("protocol//host:port/objectname", object);
where objectname is a simple String name to uniquely identify each object in the registry .
I hope this will help provide enough information for someone to help me in my moment of crisis!
Kaleem

Similar Messages

  • Invocation time Exception (java.rmi.ConnectException: Connection refused to

    Hi folks,
    SERVER = LINUX
    CLIENT = WINDOWS 200
    JAVA VERSION : 1.4.2
    Object obj = Naming.lookup("rmi://x.x.x.x:5578/MyServer");
    System.out.println("Object ="+obj); // Works fine and return stub as shown in o/p
    MyServer_Stub server = (MyServer_Stub)obj;
    server.validate(); // throws following Connection refused exception
    -----OUTPUT-----
    Object =com.MyServer_Stub[RemoteStub [ref: [endpoint:[x.x.x.x:42360](remote),objID:[a981ca:10722cb9411:-8000, 0]]]]
    java.rmi.ConnectException: Connection refused to host: x.x.x.x.x; nested exception is:
         java.net.ConnectException: Connection refused: connect
         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
         at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
         at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:101)[
         at com.MyServer_Stub.validate(Unknown Source)/b]
         at tescasees.testbyexample.rmi.MyServerChangesTestApplication.main
    Caused by: java.net.ConnectException: Connection refused: connect
         at java.net.PlainSocketImpl.socketConnect(Native Method)
         at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
         at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
         at java.net.Socket.connect(Socket.java:452)
         at java.net.Socket.connect(Socket.java:402)
         at java.net.Socket.<init>(Socket.java:309)
         at java.net.Socket.<init>(Socket.java:124)
         at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
         at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
         ... 5 more
    Exception in thread "main"
    [b] Why does java system throws exception at invoke time not connection time at lookup time</b]
    Any suggestion...
    Regards,
    Manoj

    > Are you getting this from a lookup()? If so it means the Registry you are looking for at rmi://x.x.x.x:5578 is not present.
    I am getting it at the time when I invoke the method validate on the object returned from lookup.
    --Manoj                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Java.rmi.ConnectException

    hi I am trying to connect to a remote server from my client as follows
    $ java TestRcf -Djava.security.policy=policy
    and my policy file is as follows....
    grant {
    permission java.net.SocketPermission "*:1024-65535", "connect";
    I get the following error when i try to connect it...
    Do i have to include anything else in the policy file or what is that i am missing?
    the error is as follows......
    lookup host: //10.1.129.3/RCFSearch10.1.129.3
    java.rmi.ConnectException: Connection refused to host: 10.1.129.3; nested exception is:
    java.net.ConnectException: Connection timed out
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
    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.lookup(Unknown Source)
    at java.rmi.Naming.lookup(Naming.java:84)
    at com.lt.rcf.RemoteRCF.<init>(RemoteRCF.java:48)
    at com.lt.rcf.RCFMediator.init(RCFMediator.java:405)
    at com.lt.rcf.RCFMediator.<init>(RCFMediator.java:60)
    at com.lt.rcf.RCFClient.<init>(RCFClient.java:59)
    at com.lt.rcf.RCFAppBuilder.create(RCFAppBuilder.java:50)
    at TestRcf.test0(TestRcf.java:55)
    at TestRcf.main(TestRcf.java:88)
    Caused by: java.net.ConnectException: Connection timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
    at java.net.Socket.connect(Socket.java:507)
    at java.net.Socket.connect(Socket.java:457)
    at java.net.Socket.<init>(Socket.java:365)
    at java.net.Socket.<init>(Socket.java:178)
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
    ... 12 more
    com.lt.rcf.RCFException: RCF Server connection not available: Connection refused to host: 10.1.129.3; nested exception is:
    java.net.ConnectException: Connection timed out

    first of all, which OS are you working on? This
    question might sound wierd, but I have noticed a
    lotta people working on Linux boxes havecomplained
    about this. There is another mail thread about it:
    >
    http://forum.java.sun.com/thread.jspa?threadID=570065&
    tstart=0
    is your client able to look up the reference tothe
    server ? If so, can you print that reference andfind
    out which port the remote server is listening on ?
    here did u mean Naming.LookUp("rmi://10.1.129.3") in the client.thats where i get connection refused while doing naming.lookup.
    Then use the netstat command to see if the serveris
    indeed listenign on that port when the connectionis
    refused !
    netstat -anp - p | grep <port_of_server>
    let me know how it goes.
    when i did netstat -anp - p | grep <port_of_server> on my client this is what i get ...
    Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    tcp 0 0 0.0.0.0:1099 0.0.0.0:* LISTEN
    6435/rmiregistry
    tcp 0 0 10.1.129.3:51983 10.1.129.3:1099 ESTABLISHED
    6492/java
    tcp 0 0 10.1.129.3:1099 10.1.129.3:51983 ESTABLISHED
    6435/rmiregistry

  • Java.rmi.ConnectException: Connection refuse

    Hi all,
    I have built a simple RMI client server application.I can run client & server fine locally.
    However if I test this appplication over the internet, I get this exception on the client:
    java.rmi.ConnectException: Connection refused to host: 169.254.157.53; nested exception is:
    java.net.ConnectException: Connection timed out: connectConnection refused to host:169.254.157.53
    The RMI server is running on my PC and the client on a friend's remote PC.Both PCs are connected to Internet.
    I don't have any firewall running on my PC (including windows XP firewall). The server RMI lookup on the client happens correctly,
    the exception is raised when the client tries to call the remote method on the server.
    Here is an extract of my RMI server code (it works locally):
    public static void main(String[] args) throws Exception {
              try {
              // args[0] contains the database server name given as command line argument, arg[1] contains binary path that contains weather jpeg files     
              CPrimaryWeatherServer test = new CPrimaryWeatherServer(args[0], args[1]);
              Naming.rebind("rmi://localhost:1099/WeatherPrimaryService", test);
              System.out.println("Serveur m�t�o principal d�marr�");
              } catch (Exception e){ System.out.println(e.getMessage());}
    Here is an extract of my RMI client code (it works locally):
    try{
                        rec=1;
                        leftClik=1;
                        System.out.println("Before RMI lookup");
                        IPrimaryWeatherServerService serveur =(IPrimaryWeatherServerService)Naming.lookup("rmi://"+primWS+":1099/WeatherPrimaryService");
                        System.out.println("After RMI lookup");
                        System.out.println("Before server method call");
                        z=serveur.getFullWeatherData(); --> exception is raised here
                        System.out.println("After RMI server method call");
    I am directly connected to Internet using an ethernet card connected to an ADSL modem.169.254.157.53 is the automatic IP of my network card different from the IP given by my ISP. By the way, the client tries to contact me using my DNS name that resolves correctly to my ISP IP adress.
    Thanks a lot for help,

    because I am guessing that a local IP address is being embedded into the stub so the clien't can't find the remote server. I am guessing because you didn't provide the exception or its text. Anyway the suggestion will cause the correct public IP address/hostname to be embedded into the stub.

  • What does java.rmi.ConnectException: Connection refused to host mean? ¶

    Several users have run into a java.rmi.ConnectException message during deployment, and need some information on how to troubleshoot this. We'll be adding this to our documentation, but thought it might be useful now.
    In NoSQL DB R2.0, the show plan -id <id> command displays plan status and any errors that may have occurred. If you see this exception listed in the error section, it means that the Admin service was unable to reach one of the NoSQL DB components while the system was trying to execute an administrative command.
    The first step is check on the overall status of the store. One way to do that is to use the show topology command, followed by the verify command. The show topology command will display the layout of the store, while verify will check the status of each component. A component that can't be reached will display a status of UNREACHABLE.
    In general, NoSQL DB attempts to make any troubleshooting information you need available through the Admin CLI, through commands like show plan, show events, show faults. A ConnectException message means that a communication channel either was not established, or failed, and in those cases, troubleshooting information may not have been conveyed to the Admin service. This is particularly true if there was a communication failure during initial deployment of a component.
    The next step would be to look in the NoSQL log files for more detailed error information. Look first in the aggregated storewide log, which can be found in the node that is hosting the master admin service, under the KVROOT/<storename>/logs/<storename>*.log. You can locate the master Admin through the "verify" command. This log file contains information from all the different components in the store.
    Suppose Replication Node rg1-rn3, on Storage Node sn3, is not responsive. Look through the <storename>.log for entries made by those components. Each log entry is prefixed with the name of the component that issued the log message. Sometimes the aggregated storewide log has too much information, or sometimes information from a component was not transmitted to the Admin, and therefore isn't included in the aggregated log. In that case, it can be more helpful to look at the Replication Node or Storage Node logs directly, which can be found on their host, in the <KVROOT>/<storename>/logs directory.
    If the problem occurs during an initial deployment, it can be particularly helpful to review the Storage Node logs to make sure that the Storage Node Agent on that node was created correctly, and that the process came up as expected, according to the installation directions, and the Replication Node logs. Some of the common reasons why a Replication Node might not come up are that here is inadequate heap and memory on the node, or that a initial configuration parameter is misspelled or has an invalid value, or that the time skew between components is greater than NoSQL's acceptable limit.

    Several users have run into a java.rmi.ConnectException message during deployment, and need some information on how to troubleshoot this. We'll be adding this to our documentation, but thought it might be useful now.
    In NoSQL DB R2.0, the show plan -id <id> command displays plan status and any errors that may have occurred. If you see this exception listed in the error section, it means that the Admin service was unable to reach one of the NoSQL DB components while the system was trying to execute an administrative command.
    The first step is check on the overall status of the store. One way to do that is to use the show topology command, followed by the verify command. The show topology command will display the layout of the store, while verify will check the status of each component. A component that can't be reached will display a status of UNREACHABLE.
    In general, NoSQL DB attempts to make any troubleshooting information you need available through the Admin CLI, through commands like show plan, show events, show faults. A ConnectException message means that a communication channel either was not established, or failed, and in those cases, troubleshooting information may not have been conveyed to the Admin service. This is particularly true if there was a communication failure during initial deployment of a component.
    The next step would be to look in the NoSQL log files for more detailed error information. Look first in the aggregated storewide log, which can be found in the node that is hosting the master admin service, under the KVROOT/<storename>/logs/<storename>*.log. You can locate the master Admin through the "verify" command. This log file contains information from all the different components in the store.
    Suppose Replication Node rg1-rn3, on Storage Node sn3, is not responsive. Look through the <storename>.log for entries made by those components. Each log entry is prefixed with the name of the component that issued the log message. Sometimes the aggregated storewide log has too much information, or sometimes information from a component was not transmitted to the Admin, and therefore isn't included in the aggregated log. In that case, it can be more helpful to look at the Replication Node or Storage Node logs directly, which can be found on their host, in the <KVROOT>/<storename>/logs directory.
    If the problem occurs during an initial deployment, it can be particularly helpful to review the Storage Node logs to make sure that the Storage Node Agent on that node was created correctly, and that the process came up as expected, according to the installation directions, and the Replication Node logs. Some of the common reasons why a Replication Node might not come up are that here is inadequate heap and memory on the node, or that a initial configuration parameter is misspelled or has an invalid value, or that the time skew between components is greater than NoSQL's acceptable limit.

  • Exception in the main client program: java.rmi.ConnectException: Connection

    Hi
    I have written a program in Java using RMI and it runs perfectly fine on my pc(localhost). But when I run it on the LAN in my office, the client program stucks and I get an exception
    ***Exception in the main client program: java.rmi.ConnectException: Connection refused to host***
    ***java.net.ConnectException: Connection timed out: connect***
    Do we need to make some settings in the RMI server...or some firewall issue is there...By default port is 1099 as used by RMI registry server
    Please help me TIA
    vnx_in

    Hi, i am having the same java.rmi.ConnectException, but the problem is that i can't even run it on localhost. I simply can't start my server, and i am getting a problem on Naming.rebind, however i think it could be because i am using an static ip to connect to internet in the LAN of my town. Does it matter in this case. I would be so thankful, because i am not able to solve it after many efforts.
    Thanks in Advance :)

  • Error deabbreviating and creating the routed message weblogic.rmi.ConnectException

    Hello,
    Did anyone encounter the following exception which follows by a
    disconnection of the server from another application.
    Would appreciate any comment.
    thank you,
    Rami

    weblogic.rmi.ConnectException can happen for number of reasons, can you give
    more detail on what version of WLS you are using and also a complete
    stacktrace might give you a clue to point out the reason why the connection
    failed in the first place.
    "Rami A." <[email protected]> wrote in message
    news:[email protected]..
    Hello,
    Did anyone encounter the following exception which follows by a
    disconnection of the server from another application.
    Would appreciate any comment.
    thank you,
    Rami

  • Why do i get f4 on field in alv report  ?

    i done general (MM) alv report
    And i display "MATKL" (Material Group) in one of the column.
    I don't know why, but when i stand on the data  , i get f4 option
    , when i asking for f4 i get message, u201CNo input help is availableu201D.
    In the definition, I didnu2019t put the matkl original data element  ,
    I just put char9, i didnu2019t ask/build and double click or
    Event for it.
    so why do i get f4 option in this column  ?
    thanks  .

    Ajay said the correct answer...
    chech this sample code:
    CLEAR  wa_catalog.
      wa_catalog-fieldname = 'BANFN'.
      wa_catalog-ref_table = 'EBAN'.
      APPEND wa_catalog TO catalog.
    Edited by: Sebastian Bustamante on Oct 6, 2008 9:40 PM

  • Why do we get the data from a view to a report.

    hi
    why do we get the data from a view to a report. is it possible to get the data from a view in all the cases?

    hi Jyotssna,
      Suppose you are planning to get the data from multiple tables then you got to specify seveal condtions and make use of joins which results in poor performance in fetching the data . In order to improve the performance we make use of views where the conditions of different tables are defined and the data is fetched accordingly.
    Regards,
    Santosh

  • Why would I get ReferenceError #1065: "Variable title is not defined."

    Well of course it's not defined.  It's a dynamic class, and strict mode compilation is turned off so that I don't have to declare the property to compile it.
    I've created a library item named "Page" with a single TextField instance named "title".
    Page's class is defined in an ActionScript file, and it's assigned to the library item in export for ActionScript.
    Page's ActionScript file defines the class as a "dynamic" class, so I should not be getting this runtime error.  I turned off strict mode compiling, since it seems to be designed to check the presense of property definitions at compile time for dynamic classes like MovieClip.
    public dynamic class Page extends MovieClip
        public function Page()
            super();
            var text:String = title.text; //title can be moused over in the debugger here and shows the correct value, but the flash player throws a runtime error when it tries to access it, but it shouldn't because this is a dynamic class.
    So why am I getting a runtime error for the field "title".  It makes no sense, because if I step to that line in the FlashDevelop debugger and hold the mouse over "title", it shows that it is in fact the instance of the TextField that I'm trying to access.  Yet the player throws an error when I actually try to access it.
    Is it a problem or limitation with the access style (i.e. would it work fine if I accessed it as "this.title" or "this["title"]"?

    Nevermind.  This was apparently a browser caching issue.   The Page base class is defined in the main interface swf, and is externally referenced through its swc in an external "lesson" file that declare a subclass of Page.  It was this custom subclass of Page which was throwing the error (basically the same as the simplified example I wrote for my post, where it simply tried to access "title" as a dynamic property of the Page).  What happened is the browser was caching an old version of the lesson file with the old definition of the class that was not declared as dynamic.  I had received the error before, then updated the class, then I was surprised to see the error persist.  It suddenly dawned on me that the browser was probably caching the old version, so I cleared the cache and it seems to work fine now.
    Actually, it is a problem after all.  I forgot I had updated it to use "this.title" syntax on the page I tested after clearing the cache, but the other pages that try to access title directly as "title" still throw the error.  So it seems to be some sort of quirk in how flash accesses properties of a dynamic class.  If you try to access them direclty, it must do so in a way that requires the property to be defined, but if you access it via "this.title" or this["title"], the it seems to resolve the property value without throwing the error.
    This sucks.  I was really trying to not have to write "this." for every property.  The entire display list is dynamically generated from some custom XML that allows me to call constructors and set complex type-safe properties, and during construction it was copying each item into a Dictionary by name.  This Dictionary was then assigned to the page class as "items", so I was accessing each display object as "item.name".  Then I got the brilliant idea of just making Page and its subclasses "dynamic" so that I could just add the DIctionary values on the Page instance itself.  I thought I would be able to access the dyamic properties just by their name such as "title", but lo and behold, Flash strikes again, and I have to use dot notation anyway.  What do you all think?  Any solutions?

  • Why did I get an email from the fraud dept saying my order is on hold, told to call a number, and then told by dept it's not true?

    I placed an order to upgrade my phone yesterday, and the order went through, I was told the new phone would arrive Thursday. After I got home from work today I saw an email from Verizon that says "Dear Customer:
    Verizon Fraud Prevention Team is currently reviewing the following order on your wireless account. Please call the Verizon Fraud Prevention Team at 888-483-7200 option 3, press 1 to verify this Order."
    I called this number immediately, since I need this phone ASAP, assuming it would just be a recording and I would have to verify an account number or something. But instead, after following the instructions, I was put on hold because I needed to speak to someone in person. After several instances of my call being cut off after being on hold for at least half an hour, I finally got through after three hours and was able to speak to a fraud representative. I gave her my info and told her the problem and she told me I had called the wrong department. Instead of the fraud department, I needed the online order department. She transferred me, and I waited on hold again. When the representative from the online order dept picked up, she first told me if it was a fraud issue I'd need to speak with the fraud dept - who had JUST transferred me to her. After this, she said that my order is not on hold, because it hasn't even been processed yet or had the credit check done. When I asked if this meant I hadn't needed to call at all, she said yes. Is this actually true or is there a chance that there's an issue with my order I don't know about? If there is no issue, these emails really shouldn't be sent out, they're incredibly misleading, and I've wasted a whole lot of time and experienced an incredible amount of anxiety for no reason.

    Hi.  I checked on the order and it says the order is currently being processed and I should check back tomorrow. I'm mostly just concerned because I got an email saying the order was on hold, and I want to make sure it actually does go through and I'm not just waiting for a delivery that's not going to come. I'm still confused as to why I'd get an email saying I had to call the fraud department only to be told I shouldn't have called the fraud department.

  • My iMac locks up constantly in email. I click on one or two emails. Then when I click on another email, I get the spinning wheel and have to relaunch. Why does it get confused and lock up?

    My iMac locks up constantly in email. I click on one or two emails. Then when I click on another email, I get the spinning wheel and have to relaunch. Why does it get confused and lock up? Seems like it is stuck.

    10.6.8 here, MacBook Pro. Comcast. Mail  freeze ups. Occasional warnings to use "Log Out" under the Apple icon.
    Disk Repair run several times. Shows lots of Java  "remote" issues.
    I run Disk Repair several times, shows a lot of Java, "remote" issues.
    Restart don't know if it helps, I do it all the time. What's with quitting Mail but it doesn't quit, and why a separate maneuver to "Log Out".
    i

  • TS1702 "The feature you are trying to use is on a network resource that is unabailable" Why am I getting this message when I try to updaate itunes or quicktime?

    The feature you are trying to use is on a network resource that is unabailable" Why am I getting this message when I try to updaate itunes or quicktime?

    Before trying the update again, use Microsoft's Fix it solution at http://support.microsoft.com/mats/Program_Install_and_Uninstall. Use it to uninstall iTunes and Quicktime. It bypasses this not uncommon problem. When the solution finishes, the selected program will be uninstalled. It can take several minutes and I have seen as much as half an hour.
    After iTunes & Quicktime are uninstalled, try the update again.

  • Why do I get the "iwork discontinued" message when I click on the share feature in pages?

    Why do I get the "iwork discontinued" message when I click on the share feature in pages?

    If you are using an older version of iWorks, the sharing was, I understand discontinued in July 2012.
    New versions of the iWorks suite, Pages etc now have the sharing option, introduced earlier this year.

  • Why do I get a black screen when i click on a PDF in a web page?

    why do I get a black screen when i click on a PDF in a web page? Firefox works as is should.

    Hi,
    From your Safari menu bar click Safari / Preferences then select the Extensions tab. If you have any installed, turn that off, then relaunch Safari. Try a PDF file.
    If it's not Extensions, open a Finder window. Select MacintoshHD in the Sidebar on the left. Now open the Library folder then the Internet Plug-Ins folder. If you see any files such as this:
    AdobePDF Browser or Viewer Plug-in
    Move it to the Trash, relaunch Safari.
    Carolyn :-)

Maybe you are looking for