gpt4 book ai didi

java - RMI(java.net.ConnectException : Connection refused: connect)

转载 作者:行者123 更新时间:2023-12-02 06:36:27 24 4
gpt4 key购买 nike

我正在尝试运行名为 SampleServer 的服务器。我使用的是 Windows,这就是我所做的:

在命令中:

javaw rmiregistry 1099
cd C:\Users\Home\workspace\RMI\src
java -Djava.security.policy=policy SampleServer 1099

我收到以下错误:

binding //localhost:1099/Sample
New instance of Sample created
Sample server failed:Connection refused to host: localhost; nested exception is:

java.net.ConnectException: Connection refused: connect

我尝试使用不同的端口号,例如 4719 用于 rmiregistry,但收到相同的错误。我确保我的防火墙已禁用,但问题仍然存在。我确保该端口尚未被使用。我真的希望有人能帮助我。

我的桌面图片,其中包含项目、Eclipse 窗口和 cmd 打开的文件夹: http://s22.postimg.org/uq00qzslr/picyture.png

代码:

示例服务器:

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;

public class SampleServer {
public static void main(String args[]) {
if (args.length != 1) {
System.err.println("usage: java SampleServer rmi_port");
System.exit(1);
}
// Create and install a security manager
if (System.getSecurityManager() == null)
System.setSecurityManager(new RMISecurityManager());
try {
// first command-line argument is the port of the rmiregistry
int port = Integer.parseInt(args[0]);
String url = "//localhost:" + port + "/Sample";
System.out.println("binding " + url);
Naming.rebind(url, new Sample());
// Naming.rebind("Sample", new Sample());
System.out.println("server " + url + " is running...");
}
catch (Exception e) {
System.out.println("Sample server failed:" + e.getMessage());
}
}
}

示例客户端:

import java.rmi.Naming;
import java.rmi.RemoteException;

public class SampleClient {
public static void main(String args[]) {
try {
if (args.length < 3) {
System.err.println("usage: java SampleClient host port string... \n");
System.exit(1);
}

int port = Integer.parseInt(args[1]);
String url = "//" + args[0] + ":" + port + "/Sample";
System.out.println("looking up " + url);

SampleInterface sample = (SampleInterface)Naming.lookup(url);

// args[2] onward are the strings we want to reverse
for (int i=2; i < args.length; ++i)
// call the remote method and print the return
System.out.println(sample.invert(args[i]));
} catch(Exception e) {
System.out.println("SampleClient exception: " + e);
}
}
}

示例界面:

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface SampleInterface extends Remote {
public String invert(String msg) throws RemoteException;
}

示例:

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.server.*;

// this is the class with remote methods

public class Sample
extends UnicastRemoteObject
implements SampleInterface {

private int a;

public Sample() throws RemoteException {
System.out.println("New instance of Sample created");
a = 1;
}

public String invert(String m) throws RemoteException {
// return input message with characters reversed
System.out.println("invert("+m+") a=" + a);
return new StringBuffer(m).reverse().toString();
}
}

政策:

grant {
permission java.security.AllPermission;
};

最佳答案

javaw rmiregistry 1099

停在那里。这已经是错误的了。 “rmiregistry”是一个可执行文件,而不是可以使用“java”或“javaw”执行的 Java 类的名称。只需使用“rmiregistry”即可。

关于java - RMI(java.net.ConnectException : Connection refused: connect),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19604517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com