【问题标题】:Socket connect exception saying connection refused套接字连接异常说连接被拒绝
【发布时间】:2016-06-24 23:58:00
【问题描述】:

我正在构建一个 Spring Boot 应用程序,该应用程序具有多个微服务,一个主要服务正在使用这些微服务。服务是作为 maven 模块创建的,我正在使用 intelliJ IDEA 15 和试用期。现在,当我尝试运行该服务时,出现以下错误。我认为我的 tomcat 服务器没有运行,但我不知道如何检查,如果这是问题,那么如何解决。我在pom.xml 中包含了tomcat 依赖。

我正在运行的课程是这个->

AlpsWsApplication.java

@SpringBootApplication
public class AlpsWsApplication {
    private static final Logger logger = LoggerFactory
            .getLogger(AlpsWsApplication.class);
    public static void main(String[] args) {
        SpringApplication.run(AlpsWsApplication.class, args);
    }
}

还有hibernate、Apache qpid配置文件。

堆栈跟踪:

ERROR 10 Mar 2016 14:01:10,185 [main] org.springframework.boot.SpringApplication: Application startup failed
com.ecwid.consul.transport.TransportException: java.net.ConnectException: Connection refused
    at com.ecwid.consul.transport.DefaultHttpTransport.executeRequest(DefaultHttpTransport.java:87)
    at com.ecwid.consul.transport.DefaultHttpTransport.makeGetRequest(DefaultHttpTransport.java:46)
    at com.ecwid.consul.v1.ConsulRawClient.makeGetRequest(ConsulRawClient.java:66)
    at com.ecwid.consul.v1.kv.KeyValueConsulClient.getKVValues(KeyValueConsulClient.java:135)
    at com.ecwid.consul.v1.kv.KeyValueConsulClient.getKVValues(KeyValueConsulClient.java:128)
    at com.ecwid.consul.v1.ConsulClient.getKVValues(ConsulClient.java:346)
    at org.springframework.cloud.consul.config.ConsulPropertySource.init(ConsulPropertySource.java:57)
    at org.springframework.cloud.consul.config.ConsulPropertySourceLocator.locate(ConsulPropertySourceLocator.java:70)
    at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:88)
    at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:628)
    at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:328)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:295)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1112)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1101)
    at com.alps.AlpsWsApplication.main(AlpsWsApplication.java:13)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:220)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139)
    at com.ecwid.consul.transport.DefaultHttpTransport.executeRequest(DefaultHttpTransport.java:71)
    ... 14 more

【问题讨论】:

  • 没有代码的错误和没有错误的代码一样没用。
  • @ChiefTwoPencils 添加了更多信息。文件太多,我无法理解要放置哪个文件。有一些 web 控制器类接受 API 调用、hibernate 和 Apache qpid 配置文件等等。
  • 您可以ping服务器ip来检查服务器是否正在运行或检查服务器进程是否正在运行(在linux上ps -e)如果它在您的本地计算机上。因为这个 java.net.ConnectException: Connection refused 是错误原因,很可能这是与服务器的连接问题,即防火墙
  • 检查您的服务在服务器上使用了哪些端口检查这些端口的防火墙
  • @ralfhtp 我正在使用 mac 并且我已经关闭了我的防火墙。该应用程序在 8080 端口上运行。 Apache qpid 在 5672 端口上运行并监听 8081 端口。

标签: java spring maven sockets intellij-idea


【解决方案1】:

“连接被拒绝”只有一个含义:目标主机已启动,并且在指定端口上没有任何监听。所以要么你没有启动服务,要么你的 IP 地址或端口错误。

与这里的 cmets 完全相反:

  • 这不是“主机停机”情况
  • 不是防火墙问题
  • 这不是网络连接问题 (ping)。

【讨论】:

  • 根据这篇博客,java.net.ConnctException 在服务器关闭或防火墙启动时也会抛出:javarevisited.blogspot.de/2013/02/…
  • @ralfhtp 您的链接错误。你不能随便引用互联网垃圾。如果您的意思是“主机关闭”,“服务器关闭”会导致连接超时,防火墙端口阻塞也会导致连接超时。如果“服务器关闭”是指“应用程序未运行”,那么您同意我的观点。
  • Is correct java.net.ConnectException connection timed out 当服务器关闭且防火墙启动而不是 connection denied 时抛出。好的,然后我删除链接...问题可能是 Tomcat 没有侦听服务尝试绑定到的端口(应用程序未运行)
  • @ralfhtp 关于它没有“可能”。问题 Tomcat 没有在该 IP:port 上侦听,其他任何东西也没有。没有其他可能。
【解决方案2】:

问题是我在 pom.xml 文件中包含了 spring cloud consul 依赖但没有启动服务器。

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多