[
https://issues.apache.org/jira/browse/KARAF-6773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17188594#comment-17188594
]
Jean-Baptiste Onofré edited comment on KARAF-6773 at 9/1/20, 4:08 PM:
----------------------------------------------------------------------
Yes, I found the issue (I think ;) ).
I bet you are using Spring 5 by default.
Do you have spring-legacy repository added before adding activemq repo ?
The point is that: activemq-osgi "expects" spring schema from spring 4. As
spring changed the location in spring 5, activemq-osgi uses the "online"
version of the schema.
If you do:
{code:java}
karaf@root()> feature:repo-add spring-legacy
karaf@root()> feature:repo-add activemq 5.15.13
karaf@root()> feature:install activemq-broker
{code}
I guess it works.
The "offline" issue is related to Spring 5 used in the Karaf runtime.
I'm in the process of upgrading ActiveMQ to Spring 5 to avoid issue.
was (Author: jbonofre):
Yes, I found the issue (I think ;) ).
I bet you are using Spring 5 by default.
Do you have spring-legacy repository added before adding activemq repo ?
The point is that: activemq-osgi "expects" spring schema from spring 4. As
spring changed the location in spring 5, activemq-osgi uses the "online"
version of the schema.
If you do:
{code:java}
karaf@root()> feature:repo-add spring-legacy
karaf@root()> feature:repo-add activemq 5.15.13
karaf@root()> feature:install activemq-broker{code}
> ActiveMQ won't properly start in offline mode
> ---------------------------------------------
>
> Key: KARAF-6773
> URL: https://issues.apache.org/jira/browse/KARAF-6773
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.2.9
> Reporter: Gerald Kallas
> Assignee: Jean-Baptiste Onofré
> Priority: Major
>
> I've created a docker image based on Karaf 4.2.9 and ActiveMQ 5.15.13
> (amongst other features).
> After embedding all features I enabled the offline mode for Karaf startup in
> org.ops4j.pax.url.mvn.cfg as following
> {code:java}
> #
> # If set to true, no remote repository will be accessed when resolving
> artifacts
> #
> org.ops4j.pax.url.mvn.offline = true
> {code}
> When starting in offline mode there's an error
> {code:java}
> ...
> Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the
> declaration of element 'beans'.
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1901)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:741)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3132)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:852)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
> ~[?:1.8.0_242]
> at
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
> ~[?:1.8.0_242]
> at
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
> ~[!/:?]
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:434)
> ~[!/:?]
> at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
> ~[!/:?]
> 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:188)
> ~[!/:?]
> at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
> ~[!/:?]
> at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:195)
> ~[!/:?]
> at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:257)
> ~[!/:?]
> at
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:128)
> ~[!/:?]
> at
> org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:94)
> ~[!/:?]
> at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:133)
> ~[!/:?]
> at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:636)
> ~[!/:?]
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:521)
> ~[!/:?]
> at
> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:126)
> ~[!/:5.15.11]
> ... 7 more
> {code}
> I created a workaround as described in
> https://issues.apache.org/jira/browse/KARAF-6616
> {code:java}
> Temporary solution : Update the etc/activemq.xml root element which has been
> provided by the feature installation like this
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> file:spring-beans-4.3.xsd
> http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd">
> and provided the spring-beans-4.3 at ${KARAF_HOME}. Than the instance was
> able to start again.
> {code}
> The error was gone in Karaf 4.2.8 but occured again in Karaf 4.2.9.
> Best
> Gerald
--
This message was sent by Atlassian Jira
(v8.3.4#803005)