Ошибка XML при запуске приложения Spring-GWT в режиме разработки - PullRequest
1 голос
/ 29 марта 2011

Я использую eclipse, и когда я пытаюсь запустить мое приложение spring-GWT в режиме разработки, я получаю следующее исключение при анализе файла applicationContext.xml:

    Ignored XML validation warning
    org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/tx/spring-tx-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>.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:96)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:380)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
(...)
Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 51 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'.
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)

И мой файл applicationContext.xmlначинается так:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

(...) Строка 51 ---> <tx:annotation-driven transaction-manager="transactionManager"/>

Кто-нибудь знает, что происходит ??

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Проверьте, есть ли у вас зависимости Spring-TX (или любые другие зависимости Spring) в вашем пути к классам, чтобы он мог использовать вашу схему. Все схемы, на которые ссылаются, должны соответствовать пружинной зависимости.

XMLNS: ТХ = "http://www.springframework.org/schema/tx"

Проверьте это:

http://www.dashaun.com/2010/03/10/springframework-applicationcontext-woes-unable-to-locate-spring-namespacehandler/

0 голосов
/ 24 мая 2011

Согласно ответу Тони, существует другой обходной путь, создавая собственную версию этих трех файлов. Я разместил отчет об ошибке здесь и код обхода здесь также .

0 голосов
/ 14 апреля 2011

Найден обходной путь:

При запуске GWT devmode возникает проблема с запуском весеннего appcontext, TX ... XSD не может быть найден. Это связано с определением загрузчика классов в этом классе Devmode GWT, который делегирует Systemclassloader (переопределение пристани) см .: http://groups.google.com/group/google-web-toolkit/browse_thread/thread/ac495ee6605d21b4

Это происходит только при определении тега весной, который необходим для обработка @Transactional аннотаций для транзакций. Единственный способ решить эту проблему, который я нашел (через 2 дня), - это просмотреть трассировку стека и определить, какой класс Spring вызвал xerces (так как это xerces не может найти файл) Это был "DefaultDocumentLoader" Этот класс находится в spring-beans.jar. => Итак, я скопировал все классы из spring-tx.jar в новый spring-beans.jar поэтому эти классы будут загружены одним и тем же загрузчиком классов Затем я также объединил файлы META-INF / spring.handlers, spring.schemas, spring.tooling, Все теперь в новой банке, которую я создал: spring-beans-tx-3.0.5.RELEASE.jar Этот новый кувшин является первым в classpath моего проекта. В этом случае это работает !!

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