Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Rmi异常_Java_Rmi_Java Server - Fatal编程技术网

Java Rmi异常

Java Rmi异常,java,rmi,java-server,Java,Rmi,Java Server,我想建立一个RMI服务器,我试着这样做 package first_project; import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.ArrayList; public class Server extends UnicastRemoteObject implements ServerInterface

我想建立一个RMI服务器,我试着这样做

package first_project;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;


public class Server extends UnicastRemoteObject implements ServerInterface {

    // list for know users
    protected ArrayList<ClientInterface> clients = new ArrayList<ClientInterface>();


    public Server() throws RemoteException {}

     //logged in clients get a notification that a new user has joined the chat
     // remote reference to the new client is added to the ArrayList.
    public void login(ClientInterface client, String nickname) throws RemoteException {
        broadcastMessage("--> " + nickname + " is entering the chatroom", "");  
        clients.add(client);
    }

    // used for broadcasting an incoming message
        //  and the nickname of its sender to all currently logged in clients .
        //remote call of the method getMessage which is

    public void broadcastMessage(String message, String nickname) throws RemoteException {
        for (int i = 0; i < clients.size(); i++) {
            ClientInterface c = clients.get(i);
            try {
                c.getMessage(message, nickname);
            } catch (RemoteException e) {

                            logout(c);
                    i = i - 1;
            } }}

        //remove user
    public void logout(ClientInterface client) {
        clients.remove(client);
    }


    public static void main(String[] args) {
        try {
            Naming.rebind("Server", new Server());
            System.out.println("Server is ready");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
包首个\u项目;
导入java.rmi.Naming;
导入java.rmi.RemoteException;
导入java.rmi.server.UnicastRemoteObject;
导入java.util.ArrayList;
公共类服务器扩展UnicastRemoteObject实现服务器接口{
//已知用户列表
受保护的ArrayList客户端=新建ArrayList();
公用服务器()引发RemoteException{}
//登录的客户端会收到一个新用户已加入聊天的通知
//对新客户端的远程引用将添加到ArrayList中。
公共无效登录(ClientInterface客户端,字符串昵称)引发RemoteException{
广播消息(“-->”+昵称+”正在进入聊天室“,”);
客户。添加(客户);
}
//用于广播传入消息
//以及当前登录的所有客户端的发件人昵称。
//方法getMessage的远程调用,该方法是
public void broadcastMessage(字符串消息、字符串昵称)引发RemoteException{
对于(int i=0;i
但我不知道为什么会有这样的例外:

java.rmi.ConnectException: Connection refused to host: 192.168.1.3; 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 first_project.Server.main(Server.java:47)
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:180)
        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
java.rmi.ConnectException:拒绝主机连接:192.168.1.3;嵌套异常是:
java.net.ConnectException:连接被拒绝:连接
位于sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
位于sun.rmi.transport.tcp.tcpcchannel.createConnection(tcpcchannel.java:198)
位于sun.rmi.transport.tcp.tcpcchannel.newConnection(tcpcchannel.java:184)
位于sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
位于sun.rmi.registry.RegistryImpl_Stub.rebind(未知源)
位于java.rmi.Naming.rebind(Naming.java:160)
首先_project.Server.main(Server.java:47)
原因:java.net.ConnectException:连接被拒绝:连接
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
位于java.net.socksocketimpl.connect(socksocketimpl.java:366)
位于java.net.Socket.connect(Socket.java:519)
位于java.net.Socket.connect(Socket.java:469)
位于java.net.Socket(Socket.java:366)
位于java.net.Socket(Socket.java:180)
位于sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
位于sun.rmi.transport.proxy.rmismastersocketfactory.createSocket(rmismastersocketfactory.java:128)
位于sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
... 还有6个
请问我做错了什么


提前感谢您启动了注册表。请在启动注册表后重试
启动windows注册表

rmiregistry&forlinux/Unix

看起来您也有类似的问题[this][1][1]:@Seid.M不,没有。该线程中的OP至少正在尝试启动注册表。这里没有这方面的证据。