gpt4 book ai didi

java - WSWS3499W : How to make WAS understand the HTTP 302 response from a web service?

转载 作者:行者123 更新时间:2023-12-02 03:47:22 25 4
gpt4 key购买 nike

我们有一个在 WebSphere Application Server(以下简称“客户端”)上运行的 Java 应用程序,它对分布在两个数据中心上的另一个应用程序进行 Web 服务调用,并在其之上有一个负载均衡器。

负载均衡器的工作方式如下:

  1. 您访问了负载均衡器网址
  2. 它为您提供带有新 URL(数据中心之一)的 HTTP 302 响应
  3. 客户端应用程序直接与其中一个数据中心的 Web 服务应用程序对话

例如:

    > curl -i -s -k https://stealthwsort-1810.*.*/StealthWS/StealthServices
HTTP/1.0 302 Found
Location: https://stealthwsort-1810-vip.*.*:5443/StealthWS/StealthServices
Content-Type: text/html
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Server: BigIP
Connection: Keep-Alive
Content-Length: 0

由于某种原因,我们的客户端应用程序无法理解来自负载均衡器的 HTTP 302 响应,并在日志中抛出 WSWS3514E 和 WSWS3499W 错误:

    [3/23/16 9:12:36:066 GMT] 00000029 HttpOutboundC E   WSWS3514E: No HTTP response body is available from the connection for: https://stealthwsort-1810.apaas-np.*.*/StealthWS/StealthServices
[3/23/16 9:12:36:068 GMT] 00000029 SystemOut O esEligibilityWs(ERROR)=Unable to process the Stealth Status request at site : https://stealthwsort-1810.apaas-np.*.*/StealthWS/StealthServices : Error : WSWS3499W: Redirected new location: https://stealthwsort-1810.apaas-np.*.*/StealthWS/StealthServices
at bundles.workflow.classes.TaskWrapper.execute(TaskWrapper.java:581)
at bundles.workflow.classes.ProcessController.processTask(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1661)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1602)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:507)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:374)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:878)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:84)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1819)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660)

IBM 网站建议:

You may want to check the product documentation for details about how to accept the automatic redirection to the new location.

但我找不到这方面的任何具体手册。

请指出我正确的方向。如果需要,我准备提供更多详细信息。

谢谢,叶夫根

最佳答案

首先,您需要为 JVM 配置一些额外的 HTTP 传输属性:

  1. 打开管理控制台。

    单击服务器 > 应用程序服务器 > 服务器 > Java 和进程管理 > 进程定义 > Java 虚拟机 > 自定义属性。

  2. 可选:如果该属性未列出,请创建一个新的属性名称。
  3. 输入名称和值。
  4. 可选:接受将 HTTP 请求重定向到 HTTPS 中的不同 URI。

    如果在应用程序中配置了 CONFIDENTIAL 或 INTEGRAL 的传输保证,则可能会发生 HTTP 请求重定向到 HTTPS 中的不同 URI。要接受重定向,您可以执行以下任一任务:

    • 设置com.ibm.ws.webservices.HttpRedirectEnabled Java 系统属性为 true。
    • 以编程方式设置 com.ibm.wsspi.webservices.Constants.HTTP_REDIRECT_ENABLED在调用服务之前,将属性赋给 Stub 或 Call 对象中的 java.lang.Boolean 对象。例如,使用以下任意 java.lang.Boolean将属性设置为 true 的值:
      • boolean 值.TRUE
      • 新 boolean 值(true)
      • 新 boolean 值(“true”)

根据要求,可以在以下链接中找到产品文档: http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-base-iseries&topic=twbs_configaddhttppropertiesadmin

关于java - WSWS3499W : How to make WAS understand the HTTP 302 response from a web service?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36181986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com