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

时间:2019-01-14 10:17:23

标签: maven gwt

我有一个由Maven使用 gwt-maven-plugin maven-war-plugin 构建的 .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中做到这一点,因为JEM仿真库中没有方法

我还尝试使用 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-未找到)。

1 个答案:

答案 0 :(得分:3)

用户的网络浏览器无法读取META-INF或WEB-INF中的任何内容-这将使得下载战争方式的内部信息以及查找机密(包含密码或其他详细信息的配置文件)太容易了或获取源代码并对其进行反向工程。

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

这实际上不是GWT问题-GWT应用是编译为JS而不是jar或war的,只是碰巧是保存在您的案例的.war存档中。