Avatar billede mosquito Nybegynder
22. september 2002 - 17:33 Der er 3 kommentarer og
1 løsning

RMI connection failed.. ??

håber der er et skarpt øje der kan se hvad jeg gør galt.. jeg er ved at teste et eksempel på RMI og får fejlmeddelelsen:

Connection to server failed, Server may be temporarily unavailable.

min client står til localhost, men er det som med sockets at man angiver sin egen ip, hvilket jeg også har prøvet uden held..

// TemperatureClient definition
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.rmi.*; 

public class TemperatureClient extends JFrame
{
  public TemperatureClient( String ip )
  {
      super( "RMI TemperatureClient..." );     
      getRemoteTemp( ip );
 
      setSize( 625, 567 );
      setResizable( false );
      show();
  }

  // obtain weather information from TemperatureServerImpl
  // remote object
  private void getRemoteTemp( String ip )
  {       
      try {
        // name of remote server object bound to rmi registry
        String serverObjectName = "//" + ip + "/TempServer";

        // lookup TemperatureServerImpl remote object
        // in rmiregistry
        TemperatureServer mytemp = ( TemperatureServer )
            Naming.lookup( serverObjectName );


        // get weather information from server
        WeatherInfo weatherInfo[] = mytemp.getWeatherInfo();
        WeatherItem w[] =
            new WeatherItem[ weatherInfo.length ];
        ImageIcon headerImage =
            new ImageIcon( "images/header.jpg" );

        JPanel p = new JPanel();

        // determine number of rows for the GridLayout;
        // add 3 to accommodate the two header JLabels
        // and balance the columns
        p.setLayout(
            new GridLayout( ( w.length + 3 ) / 2, 2 ) );
        p.add( new JLabel( headerImage ) ); // header 1
        p.add( new JLabel( headerImage ) ); // header 2

        for ( int i = 0; i < w.length; i++ ) { 
            w[ i ] = new WeatherItem( weatherInfo[ i ] );
            p.add( w[ i ] );         
        }

        getContentPane().add( new JScrollPane( p ),
                            BorderLayout.CENTER );
      }
      catch ( java.rmi.ConnectException ce ) {
        System.err.println( "Connection to server failed. " +
            "Server may be temporarily unavailable." );
      }
      catch ( Exception e ) {
        e.printStackTrace();
        System.exit( 1 );
      }     
  }

  public static void main( String args[] )
  {
      TemperatureClient gt = null;

      // if no sever IP address or host name specified,
      // use "localhost"; otherwise use specified host
      if ( args.length == 0 )
        gt = new TemperatureClient( "localhost" );
      else
        gt = new TemperatureClient( args[ 0 ] );

      gt.addWindowListener(
        new WindowAdapter() {
            public void windowClosing( WindowEvent e )
            {
              System.exit( 0 );
            }
        }
      );
  }
}

/**************************************************************************
* (C) Copyright 1999 by Deitel & Associates, Inc. and Prentice Hall.    *
* All Rights Reserved.                                                  *
Avatar billede mosquito Nybegynder
22. september 2002 - 17:48 #1
en exception ser ud til at blive kastet af mytemp...
Avatar billede rudidanmark Nybegynder
23. september 2002 - 20:09 #2
Hvis du ikke ved det?:
Man skal compile på serversiden med rmic fx. c:\jdk1.3.1\bin\rmic RMIImpl, heraf vil man få en RMIImpl_stub som skal kopieres til clientsiden. RMIImpl er det object der extends UnicastRemoteObject, og er en slags interface mellem klient og server.
Avatar billede mosquito Nybegynder
23. september 2002 - 21:24 #3
rudidanmark >> den er jeg med på og burde egentlig have lukket spørgsmålet da jeg har kasseret eksemplet.
Avatar billede rudidanmark Nybegynder
23. september 2002 - 21:32 #4
Hehe ok ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester