当前位置: 首页 > 知识库问答 >
问题:

Tomcat上JVM代理参数的间歇性503问题

丁念
2023-03-14

我在打Rest电话时遇到了tomcat的间歇性问题。设置:

应用程序在portX上运行独立的tomcat

Application B在portY上的另一个独立tomcat上运行,两个tomcat安装都在同一台机器上。Java版本是JRE6

下面的参数被添加到bash profile-Dhttp中的JVM_OPTS中。代理主机=[主机]-Dhttp。proxyPort=[端口]-Dhttp。非Proxy主机=本地主机

应用程序A使用Spring RestTemplate对应用程序B进行rest调用,并获得503错误(服务不可用)响应。

正在使用的URL为http://localhost:portY/ApplicationB/restapipath

我的原因是对localhost的请求是通过JVM_OPTS中定义的代理,但根据我的理解,所有localhost网址都应该在不使用任何代理的情况下调用。

此问题是间歇性发生的,但一旦启动,它就会继续,直到我重新启动Application ationA tomcat服务器。

此外,我的理解是,通过Spring RestTemboard进行的任何调用都将遵守JAVA_OPTS代理设置,而无需在代码中进行任何额外处理。

如有任何指示,欢迎提供帮助。

共有1个答案

卫寒
2023-03-14

经过几个小时的挫折,我找到了解决办法。问题是我对JVM代理参数的理解不正确。

bash配置文件-Dhttp.proxyHost=[host]-Dhttp.proxyPort=[port]中的参数在使用SpringRestTemboard时实际上不会自动使用。这些参数必须使用System.get属性('http.proxyHost')获取,然后在DefaultHttpClient中显式设置

现在我的代码中的问题是,在应用程序Context.xml中定义了一个httpClientbean,这两个rest调用都在使用它。非代理rest调用工作正常,直到with代理rest调用使用代理详细信息更新httpClient对象。

解决方案是用户为两个rest调用分离httpClient对象。

 类似资料:
  • 问题内容: 我们的数据库中有一个函数,该函数搜索两个大表以查看是否存在值。这是一个相当大的查询,但已对其进行了优化以使用索引,并且通常运行速度非常快。 在过去的2周中,此功能有3次决定进入麻烦境地,并且运行极其缓慢,这会导致死锁和性能下降。即使在少于高峰使用时间的情况下,也会发生这种情况。 在SQL Server中使用“更改功能”重建功能似乎可以解决此问题。完成后,服务器使用率将恢复正常,一切正常

  • 我们在ignite中面临着间歇性的性能问题,响应时间变得非常高,我们在日志中看到了下面的错误。我们有10个索引列,我没有看到索引有任何问题,因为“where”子句中的所有列都被索引了。联接发生在具有亲和性共定位的字段上,这意味着联接只发生在特定节点中的数据上,而不发生在Across ;节点上。 请让我知道你是否能在这方面提供任何帮助。  > Apache Ignite版本:2.7.5 启用Igni

  • 我在两个不同的API项目上断断续续地收到以下错误。API项目已正常运行近一年,没有变化。当错误开始发生时,它会以持续几分钟的突发方式发生,然后再次开始正常运行。错误事件每小时发生几次,我们在12小时前的昨晚早些时候注意到错误发生。感谢任何帮助。 接口范围:www.googleapis.com/auth/userinfo.profile www.googleapis.com/auth/userinf

  • 在这个问题上我有点绝望:我们正在为我们的API运行AWS Lambda,该API与MongoDB Atlas (M20)上的MongoDB集群对话。为了防止在每次lambda调用时创建新的连接,我们遵循以下模式:https://docs . atlas . MongoDB . com/best-practices-connecting-to-AWS-Lambda/在Lambda容器的生命周期内缓存

  • 在Heroku上打印PDF时,我经常遇到以下错误。当延迟的作业服务器重新尝试打印时,错误会间歇性发生并消失。 错误信息: MESSAGE命令失败(exitstate=139): /app/vendor/bundle/ruby/2.5.0/gems/wkhtmltopdf-heroku-2.12.4.0/bin/wkhtmltopdf-linux-amd64-编码UTF-8-dpi 300-边缘-顶

  • 问题内容: 我有一个通过Apache https proxypass在Tomcat上运行的Java Spring Web应用程序,当它尝试访问安全的IBM Watson服务时间歇性地失败。Apache通过LetsEncrypt证书进行安全保护,该证书重定向到Tomcat端口8080。 环境: Java:jdk1.7.0_80 Solaris 10 Tomcat 8.0.33 Apache2.4.1