【问题标题】:Spring RestTemplate on Jelastic - Connection Refused when requesting external rest serviceJelastic上的Spring RestTemplate - 请求外部休息服务时连接被拒绝
【发布时间】:2015-08-05 14:50:38
【问题描述】:

我有需要调用 Rest 服务的应用程序来执行身份验证过程。该服务和我的应用程序位于同一台服务器中。我使用 Spring RestTemplate 来调用它。当它在 localhost 中测试时,它运行良好。但是当我将它部署到云服务器(在本例中为 Jelastic)时,我得到了这个错误:

I/O error on GET request for "[my_rest_service_address]":Connection refused; nested exception is java.net.ConnectException: Connection refused

所有代码都遵循此文档:http://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/web/client/RestTemplate.html。只有改成我的rest url的url。

是不是因为jelastic服务器阻止了出站请求?但是,服务和我的应用程序都在同一个服务器上,为什么它仍然被阻止?

请解释一下,有什么问题吗?谢谢

【问题讨论】:

  • 您必须提供您要连接的 ip 的代码。似乎这里的地址是 "[rest_service_address]" ?这不是一个 IP 地址/有效的 url
  • 当然不是真实地址。我连接到 jelastic 云服务器。

标签: java spring rest resttemplate


【解决方案1】:

http 401 代码表示发出请求的用户未通过身份验证。它可以是您的 webapp 的用户,也可以是用于 rest 调用的用户。

例如,可以在 prod 和 test 中使用不同的凭据,在每个环境中使用不同的安全方案等。

【讨论】:

  • 其实这个请求是从Rest Service中获取token,发生在Spring Security的CustomAuthenticationProvider中。所以,我认为产生 401 代码是因为请求在 Spring Security 上下文的身份验证过程中失败。所以我想,是不是因为jelastic服务器阻止了出站请求?但是,它实际上令牌服务和我的应用程序在同一个服务器中。为什么它仍然被阻止?
  • 您使用用户名/密码还是其他机制?在前一种情况下,尝试执行 wget -uusername:password http:///... 并检查它是否有效。
猜你喜欢
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多