程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot?

开发过程中遇到java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot的问题如何解决?下面主要结合日常开发的经验,给出你关于java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot的解决方法建议,希望对你解决java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot有所启发或帮助;

我有一个要使用的外部 API,为此我使用了 WebTarget

private final String target_url = "http://localhost:3000/models";
WebTarget target = clIEnt.target(target_url);
GenericType<List<Model>> genericType = new GenericType<List<Model>>() {};
List<Model> modelList = target.request(MediaType.APPliCATION_JsON_value).get(genericTypE);
server.port=3001

它在没有 docker 的情况下工作正常,我可以通过 http://localhost:3000 访问外部 API

但使用 Docker 我不能。

Dockerfile

FROM openjdk:8-jre-slim

copY target/*.jar app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

两个容器在同一个网络中

命令:

docker run --rm -p 3001:3001 --network external-API image-name:version

为了运行外部 API,我正在执行

docker run --rm -p 3000:3000 --network external-API external-API-image-name:version

我也在两个容器之间执行了Ping

docker exec -ti 0d1e786b3f06 Ping 19c5bb4ab4d5
Ping 19c5bb4ab4d5 (172.27.0.2): 56 data bytes
64 bytes from 172.27.0.2: seq=0 ttl=64 time=0.232 ms
64 bytes from 172.27.0.2: seq=1 ttl=64 time=0.098 ms
64 bytes from 172.27.0.2: seq=2 ttl=64 time=0.169 ms
64 bytes from 172.27.0.2: seq=3 ttl=64 time=0.188 ms

错误:

java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_292]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_292]
    at java.net.AbstractPlainSocketImpl.connecttoaddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_292]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_292]
    at java.net.socksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_292]
    at java.net.socket.connect(Socket.java:607) ~[na:1.8.0_292]
    at sun.net.NetworkClIEnt.doConnect(NetworkClIEnt.java:175) ~[na:1.8.0_292]
    at sun.net.www.http.httpClIEnt.openServer(httpClIEnt.java:463) ~[na:1.8.0_292]
    at sun.net.www.http.httpClIEnt.openServer(httpClIEnt.java:558) ~[na:1.8.0_292]
    at sun.net.www.http.httpClIEnt.<init>(httpClIEnt.java:242) ~[na:1.8.0_292]
    .
    .
    .

解决方法

您的容器无法访问 localhost 中的 String target_url 的问题。您应该在配置文件或属性中覆盖它。例如,您可以将您的 target_url 移动到 class 字段并对其进行注释 @Value(external.api.url) 并在 application.propeties 中添加 external.api.url=your_container_name:port/uri

大佬总结

以上是大佬教程为你收集整理的java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot全部内容,希望文章能够帮你解决java.net.ConnectException:连接被拒绝(连接被拒绝):Docker + Spring boot所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:+boot