如何在 GWT 中读取 *.war 清单文件

How to read *.war manifest file in GWT

我有一个由 Maven 构建的 .war 文件,使用 gwt-maven-pluginmaven-war-插件。在 .war 清单 META-INF/MANIFEST.MF 中,我有描述其依赖项的 Web 应用程序的工件 ID 的条目。我想阅读这些条目以将它们显示给 HTML 中的用户。如何在 GWT 中读取清单文件?在桌面应用程序中很简单:

Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/MANIFEST.MF")

this.getClass().getResourceAsStream("META-INF/MANIFEST.MF")

但我不能在 GWT 中这样做,因为 JRE 仿真库中不存在该方法

我也试过使用RequestBuilder

new RequestBuilder(RequestBuilder.GET, "META-INF/MANIFEST.MF")
       .sendRequest("", new RequestCallback() {
             @Override
             public void onResponseReceived(Request req, Response resp) {
                 String text = resp.getText();
             }

             @Override
             public void onError(Request res, Throwable throwable) {
                 result.put("Err","Err");
              }
         });

但它也不起作用(错误 404 - 未找到)。

用户的 Web 浏览器无法读取 META-INF 或 WEB-INF 中的任何内容 - 这使得下载 war 工作原理的内部结构以及找到秘密(配置文件)变得太容易了持有密码或其他详细信息)或访问源代码并对其进行逆向工程。

要实现这样的目标,您需要编写一个提供该文件内容的 servlet。这可能会从您项目中的两个示例行中的任何一个开始。

这不是真正的 GWT 问题 - GWT 应用程序被编译为 JS,而不是 jar 或 war,它恰好保存在您的 .war 存档中案例.