Как решить проблему ошибки Cannot find the declaration of element 'beans' возникающей
при валидации XML-конфига framework
Spring в
программе находящейся в офлайн.
Попросили меня знакомые написать маленькую программку с
простеньким функционалом. Дай думаю, напишу ее на Java с использованием frameworkSpring ну и
соберу все это с помощью Maven. Признаюсь
честно, в Spring
я
не очень силен - изучаю, вот как раз и практика будет. Спустя некоторое время
программа была написана, и друзья остались довольными, если бы не одно но,
которое возникло на компьютере без доступа в интернет. Программа просто не хотела работать, и на любое действие выводила ошибку: Line 8 in XML document from class path resource
[app-context.xml] is invalid; nested exception is
org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 84; cvc-elt.1:
Cannot find the declaration of element 'beans'.
Я некоторое время был в ступоре, программа работает на других
компьютерах, все корректно написано, но почему появляется ошибка, да еще и на
разборе Spring конфига. Полез в интернет и долго
серфил по страницам, но никакого решения не попадалось, пока на одном из сайтов
не попалась похожая ошибка. Оказывается, что для корректной валидации XML-конфига Spring необходим интернет.
Приведу часть XML-конфига, чтобы было понятно, где именно:
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
Жирным выделены места требующие доступа к интернету.
Что же делать? Ларчик оказалось, просто открывался. Нужно
было скачать и разместить файлы spring-beans-3.1.xsd, spring-jdbc-3.1.xsd, spring-context-3.1.xsd в
корне программы, там же, где и XML-конфиг
Spring. После этого
немного переписать шапку конфига.
Пример приведу ниже:
Пример приведу ниже:
<?xml
version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
classpath:spring-beans-3.1.xsd
http://www.springframework.org/schema/jdbc
classpath:spring-jdbc-3.1.xsd
http://www.springframework.org/schema/context
classpath:spring-context-3.1.xsd">
Здесь вместо URL-адресов прописывается
classpath. И вуаля – все заработало.
+
ОтветитьУдалить