java.net.ConnectException:无法连接到 localhost/127.0.0.1(端口 8080):连接失败:ECONNREFUSED ....(代号一个应用程序)

Posted

技术标签:

【中文标题】java.net.ConnectException:无法连接到 localhost/127.0.0.1(端口 8080):连接失败:ECONNREFUSED ....(代号一个应用程序)【英文标题】:java.net.ConnectException: fail to connect to localhost/127.0.0.1(port 8080): connect failed:ECONNREFUSED….(Codename One App) 【发布时间】:2016-08-17 02:38:58 【问题描述】:

构建一个android应用程序后,我扫描了生成的二维码,并成功在galaxy s4上安装了应用程序。但是当我尝试使用该应用程序进行一些搜索时,出现以下异常:

 "java.net.ConnectException: fail to connect to localhost/127.0.0.1(port 8080): connect failed: ECONNREFUSED…." 

请查看附图以获得更清晰的信息。

应用程序在模拟器上正常运行。我关闭了系统的防火墙,但这并不能解决问题。 请问这个问题怎么解决?

此问题适用于: NetBeans 8.0.2, GlassFish 服务器 4.1, Windows 7的, 设备:三星 Galaxy S4

最好的问候。

【问题讨论】:

附图没有增加清晰度。请勿在此处发布文字图片。您已经在标题中发布了错误消息。 【参考方案1】:

在模拟器内部,127.0.0.1 指的是模拟器本身 - 而不是您的本地机器。您需要使用 ip 10.0.2.2,它被桥接到您的本地机器。

【讨论】:

感谢您的解决方案,它节省了我很多时间! 感谢您的回答。解决了我被卡住了好几天的问题。【参考方案2】:

您似乎正在尝试连接到您网址中的localhost

使用模拟器这可能工作得很好,但是当您在生产环境中运行应用程序时,您需要在 URL 中使用 IP 地址或更好但可解析的主机名。

尝试以这种方式更改您的网址。您可以使用手机的 Web 浏览器测试连接性,例如在浏览器中输入您的 Web 服务的 URL(而不是使用 localhost!),然后看看会发生什么。

【讨论】:

仅添加连接到 IP 可能还不够,因为设备可能驻留在不同的 NAT 上,因此他需要部署到公共可见服务器。 ck1 和 Shai 感谢您的启发和支持。是的,我用系统的 IP 地址替换了 localhost,异常消失了。我目前正在研究其他公共 ip 和 noip 以使我的服务器公开。【参考方案3】:

我启动了本地 API 服务器,所以我无法通过 IP 地址连接。

我找到了一个对我有帮助的解决方案 - 您运行 API 服务器,启动模拟器,然后在 CMD 中转到 android ADB(路径应该类似于 %USERPROFILE%\AppData\Local\Android\Sdk\platform-tools)。然后你去那个目录并运行这个命令:

adb reverse tcp:8080 tcp:8080

你应该能够到达它。运行你的 Android 应用,问题就解决了。

更多关于reverse proxy。

【讨论】:

以上是关于java.net.ConnectException:无法连接到 localhost/127.0.0.1(端口 8080):连接失败:ECONNREFUSED ....(代号一个应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

java.net.ConnectException: Connection refused

java.net.ConnectException:连接被拒绝

java.net.ConnectException

Tomcat:java.net.ConnectException:连接被拒绝

Hadoop:java.net.ConnectException:连接被拒绝

Spring Boot MySQL Docker 引起:java.net.ConnectException:连接被拒绝(连接被拒绝)