我们正在测试在两台虚拟机上运行的两个 API-Manager 4.2。 这里的问题是当尝试使用每个实例的内部 IP 访问 Publisher/DevPortal 时(例如,https://x.x.x.x:9443/publisher 被重定向到 https://example.site.loadbalancer.com:9443) /publisher/services/auth/login)。 APIM 重定向到 LB 地址,我们得到无效的“登录”页面:
wso2carbon.log 显示这些消息:
错误 {org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/authenticationendpoint].[oauth2_login.do]} - Servlet [oauth2_login.do] 的 Servlet.service() 引发异常 java.lang .IllegalStateException:提交响应后无法转发
错误 - 路径 [/authenticationendpoint] 上下文中 servlet [默认] 的 [默认] Servlet.service() 抛出异常 [在第 [32] 行处理 [plugins/basicauth-extensions.jsp] 时发生异常
29: request.setAttribute("errorMsg", AuthenticationEndpointUtil 30: .i18n(resourceBundle, "something.went.wrong.contact.admin")); 31: IdentityManagementEndpointUtil.addErrorInformation(请求, e); 32: request.getRequestDispatcher("error.jsp").forward(请求, 响应); 33:返回; 34:} 35: 文件打字模式记录器 = 新文件(getServletContext().getRealPath("plugins/typing-dna.jsp"));
Stacktrace:] 以及根本原因 java.lang.IllegalStateException:提交响应后无法转发
错误 - servlet [jsp] 的 [jsp] Servlet.service() 引发异常 java.lang.IllegalStateException:提交响应后无法创建会话
错误 - [localhost] 异常处理错误页面 [exceptionType=java.lang.Throwable, location=/generic-exception-response.jsp] org.apache.jasper.JasperException:javax.servlet.ServletException:java.lang.IllegalStateException:提交响应后无法创建会话
尝试更改deployment.toml配置和地址以防止重定向。 (没有成功) 尝试使用内部 IP 发布 APIM,这解决了登录页面问题,但我无法使用负载均衡器端点使用和执行 API。 (没有成功) 尝试了 4.1.0 版本以及 4.1.0 和 4.2.0 的最新更新版本。 (没有成功) 在 3.2.0 版本中我取得了成功,但我们正在努力更新到最新版本。
您可以按照此处的说明更改服务器的主机名。 https://apim.docs.wso2.com/en/latest/install-and-setup/setup/deployment-best-practices/chang-the-hostname/#chang-the-api-m-hostname
[server]
hostname = "{hostname}"
此处的主机名值几乎没有选项。