0

我们通过 WSO2 Application Server (AS) 包使用 WSO2 Carbon 4.2.0。在更换旧的、高度定制的 Carbon 安装(由不再支持该产品、已放弃并拒绝对其进行工作的公司提供,并且没有给我们留下他们如何/在 Carbon 中修改的细节)时,我们部署了一个webapps 容器中的几个 Web 应用程序,因为它们之前在旧实例中部署。我们已将 carbon.xml 中的 WebContextRoot 从默认的“/”更改为 ex:“/stuff”的子 URL,这在此处的自我回答的 SO 问题中也有详细说明。然而,在那里给出的答案并没有详细说明 OP 在修改他的 WSO2 实例时实际遇到的情况。

在测试上述配置时,我们注意到如果用户要访问服务器上不存在的网址,根据 URL 的格式,它们是:

  1. 重定向到空白页面;
  2. 收到“500 Internal server error”(我怀疑这是嵌入式 Tomcat?);
  3. 被发送到 Carbon 登录页面(出于安全原因,我们绝对希望发生这种情况);或者
  4. 获取一个 XML 文档,说明:

    <faultString> The service cannot be found for the endpoint reference (EPR) /stuff/services/nonexistantservicename </faultString>
    

至少在缺少内容的情况下,我们希望用户被发送到一个标准化的 404 错误页面,或者至少被服务器发送一个 HTTP 404 错误。对于服务,XML 错误是可口的,我们可以处理它。

我们现在规避这个问题的唯一选择是在 WSO2 实例前面放置一个代理,这将是另一个管理和调整的层,并且可能会降低性能。请注意,我不是程序员,只是具有 DevOps 经验的管理员。我不知道如何使用 Java 解决方案或重新编码 WSO2 的部分来处理这个问题。定制核心产品也会阻碍 WSO2 的未来升级,如上文所述,我们正试图摆脱这种情况。是否没有内部 WSO2 机制来处理不存在的内容?我们不能将任何错误重定向到标准的预设响应页面吗?

4

0 回答 0