Ответ 1
Итак, я нашел это:
Две папки Meta-Inf - нормальная структура?
в котором говорится, что наличие двух папок META-INF не является проблемой. Копаю немного, я нашел:
в котором говорится о папке META-INF:
Файл JAR - это, по существу, zip файл, который содержит необязательный каталог META-INF.... Каталог META-INF, если он существует, используется для хранения данных конфигурации пакета и расширения, включая безопасность, управление версиями, расширение и службы.
и это:
который в разделе 10.6 описывает структуру файла WAR:
При упаковке в такую форму будет присутствовать каталог META-INF, который содержит информацию, полезную для инструментов архива Java. Этот каталог не должен быть напрямую служил в качестве содержимого контейнером в ответ на запрос веб-клиентов, хотя его содержимое отображается в сервлет-коде через getResource и getResourceAsStream вызывает ServletContext. Кроме того, любые запросы на доступ к ресурсам в META-INF каталог должен быть возвращен с ответом SC_NOT_FOUND (404).
Итак, из спецификации WAR правильное место - WEB-INF/classes/META-INF. Тем не менее, поскольку война является специальным файлом jar, имеет смысл иметь /META -INF в качестве точки для расширений. Можно увидеть такие разные применения в файлах JPA persistence.xml и Tomcat context.xml: первый должен быть помещен в WEB-INF/classes/META-INF, а последний в/META-INF.