【问题标题】:Unable to connect Docker Container using HttpURLConnection in Java无法在 Java 中使用 HttpURLConnection 连接 Docker 容器
【发布时间】:2021-03-25 07:05:19
【问题描述】:

我在 java 中创建了两个 Web 项目。 其中一个项目在 Tomcat docker 容器中运行:

192.160.1.5:8080/SocketServer

另一个项目正在使用 eclipse 在本地机器上运行

localhost:8081/SocketClient

我正在尝试使用 Java 中的 HttpURLConnection 从 SocketClient 连接在 docker 容器内运行的 SocketServer 项目。但它给出了一些如下错误:

java.net.ConnectException: Connection refused
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:574)
    at java.base/sun.nio.ch.Net.connect(Net.java:563)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
    at java.base/java.net.Socket.connect(Socket.java:648)
    at java.base/java.net.Socket.connect(Socket.java:597)
    at java.base/java.net.Socket.<init>(Socket.java:520)
    at java.base/java.net.Socket.<init>(Socket.java:370)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at com.dump.LogAction.startSocket(LogAction.java:61)
    at com.dump.LogAction.execute(LogAction.java:37)

我该如何解决这个问题?

【问题讨论】:

    标签: java docker httpurlconnection


    【解决方案1】:

    这是正常行为,您应该阅读文档。 https://docs.docker.com/network/network-tutorial-host/

    快速回答:使用--network host参数运行docker镜像或者你需要公开一个端口https://www.whitesourcesoftware.com/free-developer-tools/blog/docker-expose-port/--expose 8080

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-11
      • 2023-03-23
      • 2020-02-29
      • 2015-05-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      相关资源
      最近更新 更多