Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
5.17.0
-
None
Description
When trying to start an ActiveMq broker using an XML configuration file in Karaf from an environment that does not have internet access, the broker fails to start because it can not resolve the spring-beans.xsd file.
This is similar to the situation reported in AMQ-7258, but the workaround of loading the spring-legacy feature does not work as result of the upgrade to Spring 5.x done in AMQ-8026.
The root cause is that activemq-osgi bundle's mapping in the spring.schemas file for the http schemalocations do not match the name of the XSDs that are embedded in the spring-beans bundle for spring version 5. It looks like all the version numbers were removed in from the xsd file name for version 5.
Workaround:
To work around this problem without manually modifying the contents of the spring.schemas file within the activemq-osgi bundle (which does work, just to prove this was root cause), is to modify the schema location within the activemq.xml file to use a classpath definition. For example, use the following
xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans.xsd
instead of of the standard
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd