Создание List в Spring

288
30 января 2018, 10:05

Выдает большой кусок текста об ошибке, но не могу понять в чем дело

XML файл:

 <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:util="http://www.springframework.org/schema/util"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
        <util:list id="cities">
            <bean class="com.example.java.test.City">
                <property name="name" value="Chicago"/>
                <property name="state" value="IL"/>
                <property name="population" value="2853114"/>
            </bean>
            <bean class="com.example.java.test.City">
                <property name="name" value="Atlanta"/>
                <property name="state" value="GA"/>
                <property name="population" value="537958"/>
            </bean>
        </util:list>
    </beans>

Class:

public class City {
    private String name;
    private String state;
    private int population;
    public City() {
    }
    public City(String name, String state, int population) {
        this.name = name;
        this.state = state;
        this.population = population;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public int getPopulation() {
        return population;
    }
    public void setPopulation(int population) {
        this.population = population;
    }
}

Ошибка:

 Exception in thread "main"
 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
 Line 9 in XML document from class path resource
 [Application_Context.xml] is invalid; nested exception is
 org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 32;
 cvc-complex-type.2.4.c: The matching wildcard is strict, but no
 declaration can be found for element 'util:list'.  at
 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
    at
 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
    at
 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at
 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
    at
 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
    at
 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
    at
 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
    at
 org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
    at
 org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
    at
 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
    at
 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
    at
 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452)
    at
 org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at
 org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.example.java.test.Main.main(Main.java:10) Caused by:
 org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 32;
 cvc-complex-type.2.4.c: The matching wildcard is strict, but no
 declaration can be found for element 'util:list'.  at
 java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
    at
 java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:395)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:326)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:283)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:510)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3587)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2142)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:828)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2706)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:601)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
    at
 java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:531)
    at
 java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:885)
    at
 java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:821)
    at
 java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at
 java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
    at
 java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    at
 org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
    at
 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:429)
    at
 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
    ... 14 more

если убрать этот List, то всё работает без проблем, понятно что дело в нем, но что именно происходит не понимаю. Только что заметил,что при использовании:

<context:annotation-config />

появляется похожее сообщение.

Answer 1

В ошибке сказано, что определение элемента util:list не найдено:

The matching wildcard is strict, but no can be found for element 'util:list'.

Выдаёт эту ошибку парсер XML и скорее всего ему нужно указать расположение схемы, поэтому попробуйте добавить расположение схемы(http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd) в атрибут xsi:schemaLocation - в теге <beans ...>

В итоге тег beans, будет выглядеть следующим образом:

 <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:util="http://www.springframework.org/schema/util"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/util
           http://www.springframework.org/schema/util/spring-util-3.0.xsd">
READ ALSO
сообщение с сервера на Android клиент

сообщение с сервера на Android клиент

Собственно такой вопрос, каким образом мы можем отправить сообщение с сервера на Java на Андроид клиент? У меня нормально передаёт данные с Андроида...

210
Как сгенерировать WSDL файл на Java

Как сгенерировать WSDL файл на Java

Имеется soap веб сервис и его WSDL описание: https://ws**demo

166