私は2.0.0.Alpha1ウェブサーバーをテストしています。私がそれをローカルで実行すると、localhost:80
に行くとHello World
が返されます。私はリモートサーバー上にWebサーバーを展開してremote_ip:80
に行きますが、私は応答が返ってきません。リモートサーバーでcurl -i -X GET http://localhost:80
を実行すると、Hello World
も返されます。したがって、サーバーは確実に動作していますが、なんらかの理由でリモートIPアドレスからアクセスできないだけです。コード内でリモートIPとしてホスト名を設定しようとすると(.addHttpListener(80, "remote.ip")
)、BindException
が表示されます。ウェブサーバーがリモートアドレスにバインドしていません
import io.undertow.Undertow;
import io.undertow.server.HttpHandler;
import io.undertow.server.HttpServerExchange;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class HelloWorldServer {
public static void main(final String[] args) {
try {
Runtime.getRuntime().exec("sudo fuser -k 80/tcp");
} catch (IOException ex) {
Logger.getLogger(HelloWorldServer.class.getName()).log(Level.SEVERE, null, ex);
}
Undertow server = Undertow.builder()
.addHttpListener(80, null)
.setHandler(new HttpHandler() {
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
exchange.getResponseSender().send("Hello World");
}
}).build();
server.start();
}
}
手がかりはありますか?
ヒント#1: "netstat -a"(または同等のもの)を使用して、サーバーがリッスンしているIPとポートを確認します。 –
'tcp6 0 0 127.0.0.1:80 ::: * LISTEN 2939/java ' – Hooli
そのIPアドレスを使用してIPv6でcurlを使用していますか? ( "localhost" ...) –