Фильтрация ресурсов Maven повреждает ресурс

У меня есть pdf-файл в моем веб-приложении Spring, внутри папки webapp. Мне нужен href-эквивалент JSF для загрузки файла с сервера.

Я пробовал эти строки:

<h:link href = "manual.pdf" >Download</h:link>
<h:outputLink value = "manual.pdf" target = "_blank">Download</h:outputLink>

Первый перенаправляет на дом, а со второго получаю ошибку 404.

Пожалуйста, помогите, заранее спасибо.

Обновлено: Было высказано предположение, что этот пост Как обеспечить загрузку файла из резервного компонента JSF? может решить мою проблему, но это не так, потому что при создании файла .war мой файл в каталоге src/main/resources повреждается и загружается как пустые страницы. Я переместил файл в /webapp/WEB-INF, чтобы иметь возможность загрузить его с помощью «интерфейсного» решения.

Обновлено еще раз: Предполагая, что это проблема фильтрации maven, как указано в комментарии, я редактирую вопрос, чтобы вы могли мне помочь.

В файле pom.xml есть следующие строки:

resources>
        <resource>
            <filtering>true</filtering>
                <directory>src/main/resources</directory>
        </resource>
</resources>

Я приступил к внесению следующих изменений:

<resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
                <excludes>
                    <exclude>**/*.pdf</exclude>
                </excludes>
            </resource>
        </resources>

Теперь мой файл .war вообще не содержит manual.pdf, и я получаю

FileNotFoundException: class path resource [manual.pdf] cannot be resolved to URL because it does not exist

Может ли кто-нибудь помочь мне понять, как исключить ресурс из фильтрации и сделать его доступным для загрузки? Ресурсы.

Заранее спасибо.

Почему он находится в WEB-INF, а не в папке ресурсов?

Selaron 30.01.2019 12:53

Я редактирую свой исходный пост, объясняя, что произойдет, если у меня есть файл в каталоге ресурсов. На самом деле он почти удваивается в размере, когда я проверяю его внутри файла .war после чистой установки mvn, и это, возможно, повреждает файл (формат PDF) и не может правильно открыться с помощью любого приложения для чтения PDF. Я также проверил это в валидаторе PDF, и хотя исходный файл действителен, файл внутри .war после сборки проекта имеет ошибки.

Paris Karagiannopoulos 30.01.2019 13:01

Тогда это на самом деле не вопрос, связанный с jsf (ни spring), а вопрос, связанный с maven.

Selaron 30.01.2019 13:50

Возможно, фильтр ресурсов maven повредил ваш PDF-файл во время сборки - вы должны исключить *.pdf из фильтрации в вашем pom.xml.

Selaron 30.01.2019 13:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
49
0

Другие вопросы по теме