首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boot-clj连接被拒绝

Boot-clj连接被拒绝
EN

Stack Overflow用户
提问于 2017-10-12 21:26:48
回答 1查看 116关注 0票数 1

在尝试使用adzerk/ Boot -clj镜像在Docker中运行boot时,我收到连接被拒绝的错误。

具体地说,当容器启动时,启动boot,然后输出堆栈跟踪。跟踪(不容易在没有连接的计算机之间复制和粘贴)本质上是与下载- https://github.com/boot-clj/boot/releases/download/2.7.2/boot.jar -和接收“连接被拒绝”错误有关。

我问这个问题,并回答这个问题,希望它能帮助其他人。

EN

回答 1

Stack Overflow用户

发布于 2017-10-12 21:30:39

从哪里开始?

我的主要问题是Docker + Clojure + Boot设置,特别是从容器内部运行“boot”时。这样做会产生堆栈跟踪。这就是我的旅程的开始。

我使用的是adzerk/boot-clj镜像。我在本地(OSX)使用它,没有问题,我遇到的问题是在使用托管在企业数据中心内的VM (CentOS 7)时。

代码语言:javascript
复制
docker run -ti adzerk/boot-clj

发出这个命令会启动容器,入口点是Boot,它会开始拉下一些jars,特别是来自Github的boot.jar。由此产生的堆栈跟踪详细说明了几个问题,但问题的症结在于

代码语言:javascript
复制
“java.net.ConnectException: Connection refused” (connecting to Clojars.org:443)

嗯,…

因此,我没有直接在容器中运行Boot,而是将容器入口点指定为“—-entrypoint bash”,这样我就可以稍微检查一下。

因此,wget - connection被拒绝。

如果没有Docker的阻碍会怎么样?同样的事情。连接被拒绝。

在与网络团队进行了一番争论之后,我发现需要在CentOS上设置“https_proxy”环境变量,以便将流量路由到互联网。在这种情况下对我来说是一个非常具体的问题。

然而,…。

现在,无论是在主机上,还是在adzerk/boot-clj容器中,wget都是正常的。然而,Boot并非如此。

为了让事情变得更简单,我完全不考虑Docker,而是在本地使用boot。

已安装java-1.8.0-openjdk.x86_64,已安装Boot。同样的问题。

所以深入研究了一下,发现了以下内容- https ://github.com/boot-clj/boot-bin/issues/2

这是一个开始。它提到了设置BOOT_JVM_OPTIONS,特别是https.proxyHost和https.proxyPort。

它仍然不工作,…Arrrg

好的,让我们把Boot从方程式中去掉。

我用Java编写了一个测试工具,非常简单,它连接到https ://clojars.org并尝试读取索引页。从https ://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html,复制并设置JVM_OPTS。

它仍然失败。“连接被拒绝”

…。奇怪的胡子。

我最终偶然发现了这个所谓的https ://stackoverflow.com/questions/43695299/java-httpurlconnection-works-on-windows-and-fails-on-linux --特别是来自Stephen C

“Java不一定要遵守系统的默认代理设置。由于您能够“卷曲”Linux机器上的URL,因此最可能的解释是Java没有使用您配置的代理。以下链接介绍了配置Java代理的各种方法:“

所以从第一个链接- https ://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to-be-used-by-the-jvm -和莱昂内尔的答案

我发出了“java -Dhttps.proxyHost=xxx -Dhttps.proxyPort=80 HelloWorld

我得到了一个错误,但这是另一个错误。这就是进步。“无法通过代理建立隧道”

谷歌很快就把我带到了这里: http ://www.oracle.com/technetwork/java/javase/8u111-relnotes-3124969.html -“禁用HTTPS隧道的基本身份验证”

所以更新为“java -Dhttps.proxyHost=xxx -Dhttps.proxyPort=80 -Djdk.http.auth.tunneling.disabledSchemes=“” HelloWorld

利润。

信息:

代码语言:javascript
复制
java -v 
openjdk version 1.8.0_144
Openjdk Runtime Environment (build 1.8.0_144-b01)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)

为我的脏话道歉,布特。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46710857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档