[ 
https://issues.apache.org/activemq/browse/AMQ-1638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47628#action_47628
 ] 

Lachezar Dobrev commented on AMQ-1638:
--------------------------------------

I would like to comment negatively on the decision to change the URLs for the 
schema files.

Using the no-version XSD files breaks many tools, including, but not limited to 
XML validation tools.
Using the with-version XSD files fixes the problems with any other tools, 
however since the URL is not mapped within the spring.schemas file it breaks 
application start up when no Internet connection is available.
There is also the compatibility issue. If the no-version URL is used it will 
break, or work, depending on whether the correct version of the JAR is in the 
class path, which leads to a number of obscure XML validation errors at runtime.

The simplest thing is to include the no-version AND the with-current-version 
URLs in the spring.schemas file.

Please reopen this issue.

> XmlBeanDefinitionStoreException : activemq.xsd URL broken in spring.schemas
> ---------------------------------------------------------------------------
>
>                 Key: AMQ-1638
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1638
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.0.0
>         Environment: activemq-core-5.0.0 and spring-jms-2.5.2 .
>            Reporter: Cyrille Le Clerc
>            Assignee: Hiram Chirino
>             Fix For: 5.1.0
>
>         Attachments: AMQ-1638.patch
>
>
> *Problem description*
> activemq-core's {{spring.schemas}} file targets broken activemq xsd urls. 
> When {{beans.xml}} targets the correct activemq-core-5.0.0.xsd url in 
> {{xsi:schemaLocation}} attribute, Spring fails to start if an internet 
> connection to activemq.apache.org does not work.
> * Broken urls currently in {{spring.schemas}} : 
> ** http://activemq.apache.org/schema/activemq-core.xsd 
> ** http://activemq.apache.org/schema/activemq-core-5.0.xsd
> * Correct url to add in {{spring.schemas}} : 
> ** http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd
> *Sample of currently failing spring configuration file*
> {code:xml|title=beans.xml with "activemq-core-5.0.0.xsd" in 
> "xsi:schemaLocation" attribute}
> <beans xmlns="http://www.springframework.org/schema/beans"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:lang="http://www.springframework.org/schema/lang";
>    xmlns:amq="http://activemq.org/config/1.0"; 
> xmlns:jms="http://www.springframework.org/schema/jms";
>    xsi:schemaLocation="
> http://www.springframework.org/schema/beans 
> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> http://www.springframework.org/schema/lang 
> http://www.springframework.org/schema/lang/spring-lang-2.5.xsd
> http://www.springframework.org/schema/jms 
> http://www.springframework.org/schema/jms/spring-jms-2.5.xsd
> http://activemq.org/config/1.0 
> http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd";>
>    ...
>    <amq:queue id="requestDestination" physicalName="requestDestination" />
>    <amq:queue id="replyToDestination" physicalName="replyToDestination" />
>    <amq:connectionFactory id="activeMqConnectionFactory" 
> brokerURL="vm://localhost?broker.persistent=false&amp;broker.useJmx=false" />
>    ...
> </beans>
> {code}
> *Spring loading failure stacktrace*
> {noformat}
> 42907 [main] WARN  
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader  - Ignored XML 
> validation warning
> org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema 
> document 'http://activemq.apache.org/schema/core/activemq-core-5.0.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.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
>       at 
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
> ...
>       at 
> org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:44)
> ...
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> 42969 [main] ERROR org.springframework.test.context.TestContextManager  - 
> Caught exception while allowing TestExecutionListener [EMAIL PROTECTED] to 
> prepare test instance [EMAIL PROTECTED]
> org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 
> 24 in XML document from class path resource 
> [fr/xebia/sample/springframework/jms/requestreply/beans.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 
> 'amq:queue'.
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
> ...
>       at 
> org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:44)
> ...
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The 
> matching wildcard is strict, but no declaration can be found for element 
> 'amq:queue'.
>       at 
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
> ...
>       at 
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
>       at 
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:382)
>       ... 26 more
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to