เดิมทีฉันโพสต์คำถามนี้บน stackoveflow แต่ได้รับคำแนะนำว่าคำถามนี้จะเหมาะกับไซต์นี้มากกว่า
ฉันพยายามเข้าถึง Jetty Server ที่ปรับใช้บนเครื่องหนึ่งจากอีกเครื่องหนึ่งนอก LAN แต่ใช้งานไม่ได้ ฉันได้อ่าน หัวข้อนี้ และปฏิบัติตามคำแนะนำของ @โยอาคิม เอิร์ดเฟลต์ อย่างไรก็ตามมันไม่ได้ผล รหัสของฉันอยู่ด้านล่าง:
เซิร์ฟเวอร์ เซิร์ฟเวอร์ = เซิร์ฟเวอร์ใหม่ ();
// ตัวเชื่อมต่อ HTTP
ServerConnector serverConnector = ใหม่ ServerConnector (เซิร์ฟเวอร์ 1, 1);
serverConnector.setHost("0.0.0.0"); <-
serverConnector.setPort(8080);
serverConnector.setIdleTimeout(30000);
// ตั้งค่าตัวเชื่อมต่อ
server.addConnector(ตัวเชื่อมเซิร์ฟเวอร์);
ฉันพยายามเข้าถึงเซิร์ฟเวอร์จากเซิร์ฟเวอร์ระยะไกลอื่นด้วยรหัสต่อไปนี้:
สตริง postUrl = "http://" + myIP + ":8080"; // myIP ถูกตั้งค่าเป็นที่อยู่ IP สาธารณะของ Jetty Server
System.out.println("โพสต์ URL: " + postUrl);
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(120 * 1000).build();
ลอง (CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();) {
HttpPost httpPostRequest = HttpPost ใหม่ (postUrl);
...
อย่างไรก็ตาม สิ่งนี้ทำให้เกิดข้อยกเว้นต่อไปนี้:
HttpPostConnectException: เชื่อมต่อกับ 123.4.56.78:8080.. ล้มเหลว: การเชื่อมต่อถูกปฏิเสธ: เชื่อมต่อ
อะไรทำให้เกิดข้อผิดพลาดนี้ ฉันอนุญาตให้ไฟร์วอลล์เข้าถึงได้เมื่อได้รับแจ้ง ดังนั้นฉันจึงไม่คิดว่ามันเป็นปัญหาของไฟร์วอลล์ พอร์ต 8080 ยังไม่ถูกใช้สำหรับกระบวนการอื่นใด ฉันลองหลายพอร์ตแล้วไม่มีประโยชน์
ขอบคุณ