Как прочитать файл манифеста * .war в GWT - PullRequest
0 голосов
/ 14 января 2019

У меня есть файл .war , созданный Maven с использованием gwt-maven-plugin и maven-war-plugin . В .war manifest META-INF / MANIFEST.MF у меня есть записи, описывающие идентификаторы артефактов веб-приложения и его зависимостей. Я хочу прочитать эти записи, чтобы показать их пользователю в 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 - не найдена ).

1 Ответ

0 голосов
/ 14 января 2019

Ничто в META-INF или WEB-INF не может быть прочитано веб-браузером пользователя - это слишком упрощает загрузку внутренних данных о том, как работает война, и поиск секретов (файлов конфигурации, содержащих пароли или другие сведения) или получить доступ к источнику и перепроектировать его.

Чтобы достичь чего-то подобного, вам нужно написать сервлет, который предлагает содержимое этого файла. Вероятно, это начнется с любой из двух строк примера в вашем проекте.

Это на самом деле не вопрос GWT - приложение GWT скомпилировано для JS, а не jar или war, просто в вашем случае оно хранится в архиве .war.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...