Разбор файла tomcat web.xml с внешним файлом xsd в автономном режиме - PullRequest
0 голосов
/ 03 апреля 2019

Когда я пытаюсь запустить tomcat без подключения к интернету, возникает ошибка при разборе файла web.xml, расположенного в CATALINA_HOME / conf / web.xml.(CATALINA_HOME - это / usr / share / tomcat8.5 в моей среде)

org.apache.tomcat.util.digester.Digester.error Parse Error at line 20 column 193: Schema error: no attribute named "lang" was defined in schema : http://www.w3.org/XML/1998/namespace.
 org.xml.sax.SAXParseException; systemId: file:/usr/share/tomcat8.5/conf/web.xml; lineNumber: 20; columnNumber: 193; Schema error: no attribute named "lang" was defined in schema : http://www.w3.org/XML/1998/namespace.

Я определила проблему в том, что она пытается извлечь файл xsd, расположенный в http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd, но так какв автономном режиме это невозможно, и пространство имен web.xml является неполным.

Я попытался загрузить web-app_3_1.xsd и поместить его в /usr/share/tomcat8.5/conf/web-app_3_1.xsd, а затем сослаться на него.измените его в файле web.xml, изменив первые несколько строк на

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee web-app_3_1.xsd" 
version="3.1">

, но он все равно выдаст ту же ошибку.Я также попытался указать на файл, например file: ///usr/share/tomcat8.5/conf/web-app_3_1.xsd, но это также не сработало, так как оно выдало FileNotFoundException, хотя файл существует и принадлежитпользователь tomcat.

Любая помощь по устранению проблемы или обходные пути для разрешения развертывания при отсутствии подключения к Интернету приветствуются!

1 Ответ

0 голосов
/ 29 июня 2019

Мы нашли решение, изменив STRICT_SERVLET_COMPLIANCE с true на false в tomcat/conf/catalina.properties. Это мешает ему проверять xml на соответствие его файлу схемы, и поскольку он больше не пытается извлечь файл схемы, он позволяет ему работать в автономном режиме.

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