2015-03-02 1 views
0

Я довольно новичок в NetBeans и Java, поэтому я уверен, что мои вопросы очень просты, но я пытаюсь найти решение в течение 2 недель. Я полностью застрялjava.rmi.ConnectException: Connection отказался принимать: 192.168.0.55

Это проблема:

Я хочу реализовать приложение клиента RMI сервера Так первый шаг пытается с NetBeans иметь одну работу от сети

Я использовал оракул учебник, чтобы иметь первая часть выполнена http://docs.oracle.com/javase/tutorial/rmi/server.html

Моя проблема заключается не в том, что клиент не подключается, а в том, что сервер не может даже зарегистрироваться в порту, который я ему даю. IP-адрес сообщения об ошибке - это мой IP-адрес.

Это сообщение об ошибке я получаю:

Conectando a: 127.0.0.1/19400/PlanificadorTalsa 
ServidorPlanificadorStarter exception: 
java.rmi.ConnectException: Connection refused to host: 192.168.0.55; nested exception is: 
    java.net.ConnectException: Connection refused: connect 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619) 
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) 
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) 
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342) 
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) 
    at Starter.ServidorPlanificadorStarter.main(ServidorPlanificadorStarter.java:52) 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at java.net.Socket.connect(Socket.java:538) 
    at java.net.Socket.<init>(Socket.java:434) 
    at java.net.Socket.<init>(Socket.java:211) 
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40) 
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148) 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) 
    ... 5 more 

Я бегу окна 8.1, и отключенным брандмауэром. Я также использую файл безопасности, предоставляющее все разрешения

это мой Java-код я исполняю с NetBeans:

import Conexion.DatosConexion; 
import Servidor.*; 

import java.rmi.RemoteException; 
import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; 
import java.rmi.server.UnicastRemoteObject; 

public class ServidorPlanificadorStarter implements InterfazServidorPlanificador { 

    private static String ip; 
    private static String Servidor = "SERVIDORNUBE"; 
    private static int puerto; 
    private static String nombreServidor; 

    public ServidorPlanificadorStarter(){ 
     super(); 
    } 

    public static void main(String[] args) { 
     if (System.getSecurityManager() == null) { 
      System.setSecurityManager(new SecurityManager()); 
     } 
     try { 
      DatosConexion datos = DatosConexion.getInstance(); 

      ip = datos.getServiceIP(Servidor); 
      puerto = Integer.valueOf(datos.getServicePort(Servidor)); 
      nombreServidor = datos.getServiceName(Servidor); 

      System.setProperty("java.rmi.server.hostname", ip); 

      System.out.println("Conectando a: " + ip + "/" + puerto + "/" + nombreServidor); 

      InterfazServidorPlanificador engine = new ServidorPlanificadorStarter(); 
      InterfazServidorPlanificador stub = 
       (InterfazServidorPlanificador) UnicastRemoteObject.exportObject(engine, puerto); 
      Registry registry = LocateRegistry.getRegistry(); 
      registry.rebind(nombreServidor, stub); 
      System.out.println("ServidorPlanificador bound"); 
     } catch (Exception e) { 
      System.err.println("ServidorPlanificadorStarter exception:"); 
      e.printStackTrace(); 
     } 
    } 

} 

Интерфейс выглядит следующим образом (очень простой, так как я ничего не сделал с ним)

public interface InterfazServidorPlanificador extends Remote { 

    //void addObserver(RemoteObserver o) throws RemoteException; 

} 

ответ

1

Вы запустили реестр RMI, как в учебнике? http://docs.oracle.com/javase/tutorial/rmi/running.html

+0

Найдено решение. Проблема была в реестре. Пришлось создать сначала, прежде чем найти его. Простое решение, трудно найти его, когда вы не знаете. Благодаря! –