Ошибка синтаксического анализа web-фрагмент.xml - Не удалось прочитать документ схемы 'https://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd' - PullRequest
1 голос
/ 19 июня 2019

У меня есть веб-приложение Spring, созданное maven, которое работает в среде затмения, но я пытаюсь развернуть его на tomcat, работающем на сервере Ubuntu.

Когда я пытаюсь развернуть его на сервере, он выдает:

org.xml.sax.SAXParseException; systemId: 
jar:file:/usr/share/tomcat8.5/webapplications/OpenElis2/WEB-INF/lib/spring-web-5.1.7.RELEASE.jar!/META-INF/web-fragment.xml;
lineNumber: 8; columnNumber: 18; schema_reference.4: 
Failed to read schema document 
'https://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd', 
because 
    1) could not find the document; 
    2) the document could not be read; 
    3) the root element of the document is not <xsd:schema>.

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

Соответствующие версии программного обеспечения:

  • Tomcat 8,5
  • Java 8
  • Пружина 5.1.7

Есть предложения?

EDIT **

Ошибка возникает, когда URL-адрес файла xsd имеет значение https, а не при обычном http

1 Ответ

1 голос
/ 28 июня 2019

Мы столкнулись с той же проблемой.

На самом деле это была не проблема ssl (вообще не было логов ssl), а скорее казалось несоответствием между пространством имен в http и расположением схемы в https.

Одним из возможных решений является отключение этой проверки, если она не требуется. Добавьте следующий параметр в ваши jvm.properties:

-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false

Скорее всего, это свойство уже определено значением true, которое вызывает проверку.

Если вы хотите точно знать, что делает эта собственность, вы можете ознакомиться с официальным руководством по настройке Tomcat 8

Надеюсь, это решит вашу проблему.

...