tomcat 上 JVM 代理参数的间歇性 503 问题
Intermittent 503 issue with JVM proxy parameters on tomcat
我在拨打休息电话时遇到 tomcat 上的间歇性问题。
设置:
ApplicationA 运行 独立 tomcat portX
ApplicationB 运行 在另一个独立 tomcat 在 portY
tomcat 安装在同一台机器上。
Java 版本是 JRE6
以下参数已添加到 bash 配置文件中的 JVM_OPTS
-Dhttp.proxyHost=[主机] -Dhttp.proxyPort=[端口] -Dhttp.nonProxyHosts=本地主机
应用程序 A 使用 Spring RestTemplate 对应用程序 B 进行 rest 调用,并收到 503 错误(服务不可用)响应。
正在使用的URL是http://localhost:portY/ApplicationB/restapipath
我的原因是对 localhost 的请求正在通过 JVM_OPTS 中定义的代理,但根据我的理解,应该在不使用任何代理的情况下调用所有 localhost url。
这个问题是间歇性发生的,但是一旦开始它就会一直持续到我重新启动 ApplicationA tomcat 服务器。
此外,我的理解是,通过 Spring RestTemplate 进行的任何调用都将遵循 JAVA_OPTS 代理设置,而无需在代码中进行任何额外处理。
任何指点,帮助不胜感激。
经过几个小时的挫折,我找到了解决方案。
问题是 我对 JVM 代理参数的理解不正确。
bash 配置文件 -Dhttp.proxyHost=[host] -Dhttp.proxyPort=[port]
中 JVM_OPTS
中的参数实际上在使用 Spring RestTemplate
时不会自动使用。这些参数必须使用 System.getProperty('http.proxyHost')
获取,然后在 DefaultHttpClient
中显式设置
现在我的代码中的问题是 applicationContext.xml
中定义了一个 httpClient
bean,其余调用都在使用它。非代理 rest 调用工作正常,直到 with-proxy rest 调用使用代理详细信息更新 httpClient
对象。
解决方案是为两个 rest 调用使用单独的 httpClient
对象。
我在拨打休息电话时遇到 tomcat 上的间歇性问题。 设置:
ApplicationA 运行 独立 tomcat portX
ApplicationB 运行 在另一个独立 tomcat 在 portY tomcat 安装在同一台机器上。 Java 版本是 JRE6
以下参数已添加到 bash 配置文件中的 JVM_OPTS -Dhttp.proxyHost=[主机] -Dhttp.proxyPort=[端口] -Dhttp.nonProxyHosts=本地主机
应用程序 A 使用 Spring RestTemplate 对应用程序 B 进行 rest 调用,并收到 503 错误(服务不可用)响应。
正在使用的URL是http://localhost:portY/ApplicationB/restapipath
我的原因是对 localhost 的请求正在通过 JVM_OPTS 中定义的代理,但根据我的理解,应该在不使用任何代理的情况下调用所有 localhost url。
这个问题是间歇性发生的,但是一旦开始它就会一直持续到我重新启动 ApplicationA tomcat 服务器。
此外,我的理解是,通过 Spring RestTemplate 进行的任何调用都将遵循 JAVA_OPTS 代理设置,而无需在代码中进行任何额外处理。
任何指点,帮助不胜感激。
经过几个小时的挫折,我找到了解决方案。 问题是 我对 JVM 代理参数的理解不正确。
bash 配置文件 -Dhttp.proxyHost=[host] -Dhttp.proxyPort=[port]
中 JVM_OPTS
中的参数实际上在使用 Spring RestTemplate
时不会自动使用。这些参数必须使用 System.getProperty('http.proxyHost')
获取,然后在 DefaultHttpClient
现在我的代码中的问题是 applicationContext.xml
中定义了一个 httpClient
bean,其余调用都在使用它。非代理 rest 调用工作正常,直到 with-proxy rest 调用使用代理详细信息更新 httpClient
对象。
解决方案是为两个 rest 调用使用单独的 httpClient
对象。