【问题标题】:CloseableHttpClient returning 504 on OpenShift tomcat podCloseableHttpClient 在 OpenShift Tomcat pod 上返回 504
【发布时间】:2017-08-16 14:46:38
【问题描述】:

问题来了:

我们有一个转发代理 struts 网络应用程序。所有请求都转发到另一个 mvc 应用程序,并且响应重定向到转发代理/struts 应用程序。目前部署在iPlanet和rhel服务器上。

我们正在(或尝试)将 struts 应用程序迁移到 OpenShift 和 Tomcat。该应用程序在生产、开发和 uat 环境以及开发机器上运行良好。在 tomcat 和 jboss 上。

我的问题如下:我们的 struts 操作之一执行正向代理繁重工作。

                            <action name="prepare"

                                            class="com.authentication.action.ProxyAction">

                                            <result name="success" type="proxy">

                                                            <param name="location">${path}</param>

                                                            <param name="parse">true</param>

                                            <param name="encode">false</param>

                                            </result>

                                            <result name="error" type="tiles">login</result>

                            </action>

CloseableHttpClient 代码如下。

                            CloseableHttpClient client = HttpClients.custom()

                                                            .setSSLContext(sslContext)

                                                            .setDefaultCookieStore(cookieStore)

                                                            .setDefaultRequestConfig(config)

                                                            .setSSLHostnameVerifier(new NoopHostnameVerifier())

                                                            .setRedirectStrategy(new LaxRedirectStrategy())

                                                            .setDefaultHeaders(headers)

                                                            .build();

在 OpenShift pod 上会发生 504 错误,并且仅在 OpenShift 上发生。

mvc 应用程序正在接收来自 struts 的所有请求并将它们返回。 pod 控制台上的 curl 也返回值,因此我丢弃了网络问题。

我不知道接下来该怎么办,以前有人遇到过这种问题吗?

谢谢

【问题讨论】:

    标签: java tomcat openshift


    【解决方案1】:

    问题根本不在 CloseableHttpClient 上。

    为了挂载当前的 url,我们曾经使用 request.getServerName(),这在 PaaS 解决方案上没有任何意义,因为您有 OpenShift pod 和到您的系统的路由。然后这个 URL 被用作 CloseableHttpClient 的参数,这就是我们得到 504 的原因,该 URL 首先不存在。

    【讨论】:

      猜你喜欢
      • 2015-01-01
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多