我最初在 stackoveflow 上发布了这个问题,但被告知它更适合这个网站。
我正在尝试从 LAN 外的另一台机器访问部署在一台机器上的 Jetty 服务器,但它不工作。我已经阅读了这个帖子并遵循了@Joakim Erdfelt提供的建议,但是它没有用。我的代码如下:
Server server = new Server();
// HTTP connector
ServerConnector serverConnector = new ServerConnector(server, 1, 1);
serverConnector.setHost("0.0.0.0"); <-
serverConnector.setPort(8080);
serverConnector.setIdleTimeout(30000);
// Set the connector
server.addConnector(serverConnector);
我尝试使用以下代码从另一台远程服务器访问服务器:
String postUrl = "http://" + myIP + ":8080"; // myIP is set to the public IP address of Jetty Server
System.out.println("Post URL: " + postUrl);
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(120 * 1000).build();
try (CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();) {
HttpPost httpPostRequest = new HttpPost(postUrl);
...
但是,这会引发以下异常:
HttpPostConnectException: Connect to 123.4.56.78:8080.. failed: Connection refused: connect
是什么导致了这个错误?我在提示时允许访问防火墙,所以我认为这不是防火墙问题。该端口8080
也未用于任何其他进程。我尝试了多个端口无济于事。
谢谢