Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > отладка и запуск rmi-сервер клиента через NetBeans


Автор: sith 3.3.2007, 23:07
написал простейшую прогу... клиент делает на сервер запрос... сервер считате значение интеграла и возвращает ответ клиенту...
... как это все дело протестировать в NetBeanse... 
... вкладываю пакет с классами...

Автор: powerOn 6.3.2007, 20:46
Запускай сервис прямо из кода. Тогда из IDE вылазить не придется. Например:
Код

public class SimpleRegistrator
{
    /** Creates a new instance of SimpleRegistrator */
    public SimpleRegistrator() {
    }
    public static void main(String[] args) {
        try {
            int port = 1098;
            // Создаем Registry.
            Registry r = LocateRegistry.createRegistry(port);
            r.rebind("rmi://localhost:" + port + "/MyService", new MyRemoteComponent());
            System.out.println("bind complite.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}



Автор: sith 6.3.2007, 22:09
а как в таком классе реализовать генерацию заглушки...  (rmic -v1.2 RemoteIntegralImpl)


... при запуске сервера выбил следующие ошибки...
java.rmi.ConnectException: Connection refused to host: 192.168.3.6; nested exception is: 
        java.net.ConnectException: Connection refused: connect
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
        at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
        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 myrmi.RemoteIntegralServer.main(RemoteIntegralServer.java:32)
Caused by: java.net.ConnectException: Connection refused: connect
        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:366)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at java.net.Socket.<init>(Socket.java:366)
        at java.net.Socket.<init>(Socket.java:179)
        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:595)
        ... 6 more
 

при запуске клиента...

Exception in thread "main" java.lang.ClassCastException: sun.rmi.registry.RegistryImpl_Stub cannot be cast to myrmi.RemoteIntegral
        at myrmi.RemoteIntegralClient.main(RemoteIntegralClient.java:29)
Java Result: 1



Автор: powerOn 6.3.2007, 22:45
Заглушки не нужны. Прикрепляю два NetBeans проекта: сервер и клиент.

Автор: sith 8.3.2007, 00:02
спасибо... разобрался... вроде даже заработало... smile

Автор: LSD 8.3.2007, 01:16
Не забывай помечать вопрос как решенный.

Автор: nereus 9.4.2008, 13:44
А как быть, если нужно запустить на разных машинах (с разными IP)?

заменяю в ""rmi://localhost:" + port + "/MyService"" "localhost" на на ip (допустим 10.10.2.1)
в итоге на одной машине работает, а на разных нет!

посоветуйте что-нибудь плиз?

Автор: LSD 9.4.2008, 16:25
Код

  public class Server
  {
    public static void main(String[] args) throws Exception
    {
      Registry registry = LocateRegistry.createRegistry(port);
      registry.rebind("/MyService", new MyRemoteComponent());

      Thread.sleep(60 * 1000);
    }
  }

  public class Client
  {
    public static void main(String[] args) throws Exception
    {
      Registry registry = LocateRegistry.getRegistry("192.168.1.68", port);
      MyRemoteComponent remoteComponent = (MyRemoteComponent) registry.lookup("/MyService");
    }
  }

Автор: leoleovich 16.11.2011, 19:12
Спасибо большое. 
Зарегился только чтобы скачать)

Автор: denzoll 12.1.2012, 16:43
Спасибо, скачал проекты и разобрался почему у меня не работало smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)