Hello ActiveMQ community, I am trying to run ActiveMQ on Apache Karaf without much success. Since I'm not very experienced with Karaf, I was wondering if anyone has any advice on what I could be doing wrong. This is what I'm doing:
Installing ActiveMQ 6.2.0 fails because some dependencies are missing: ``` karaf@root()> feature:repo-add mvn:org.apache.activemq/activemq-karaf/6.2.0/xml/features karaf@root()> feature:install activemq-broker Error executing command: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=activemq-broker; type=karaf.feature; version="[6.2.0,6.2.0]"; filter:="(&(osgi.identity=activemq-broker)(type=karaf.feature)(version>=6.2.0)(version<=6.2.0))" [caused by: Unable to resolve activemq-broker/6.2.0: missing requirement [activemq-broker/6.2.0] osgi.identity; osgi.identity=activemq-web-console; type=karaf.feature; version="[6.2.0,6.2.0]" [caused by: Unable to resolve activemq-web-console/6.2.0: missing requirement [activemq-web-console/6.2.0] osgi.identity; osgi.identity=org.apache.activemq.web-console; type=osgi.bundle; version="[6.2.0,6.2.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.activemq.web-console/6.2.0: missing requirement [org.apache.activemq.web-console/6.2.0] osgi.wiring.package; filter:="(&(osgi.wiring.package=jakarta.servlet.jsp.tagext)(version>=3.0.0)(!(version>=4.0.0)))" [caused by: Unable to resolve jakarta.servlet.jsp-api [54](R 54.0): missing requirement [jakarta.servlet.jsp-api [54](R 54.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.el)(version>=4.0.0)(!(version>=5.0.0)))]]]] ``` Fixed by installing the missing dependencies manually: ``` karaf@root()> bundle:install mvn:jakarta.servlet.jsp/jakarta.servlet.jsp-api/3.0.0 karaf@root()> bundle:install mvn:jakarta.el/jakarta.el-api/4.0.0 karaf@root()> bundle:install mvn:jakarta.servlet/jakarta.servlet-api/5.0.0 ``` And ActiveMQ starts! However I see some errors in the logs: ``` org.eclipse.jetty.util.MultiException: Multiple exceptions at org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:122) ~[!/:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:776) ~[!/:9.4.57.v20241219] at org.ops4j.pax.web.service.jetty.internal.PaxWebServletHandler.initialize(PaxWebServletHandler.java:164) ~[!/:?] ... Suppressed: java.lang.IllegalStateException: class org.apache.activemq.web.filter.ApplicationContextFilter is not a javax.servlet.Filter at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:103) ~[!/:9.4.57.v20241219] at org.ops4j.pax.web.service.jetty.internal.PaxWebFilterHolder.doStart(PaxWebFilterHolder.java:136) ~[!/:?] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[!/:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:749) ~[!/:9.4.57.v20241219] at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?] at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:774) ~[!/:9.4.57.v20241219] (follows similar exceptions mentioning other classes) ``` I then tried ActiveMQ 5.19.1 instead, but could not successfully install it: ``` karaf@root()> feature:repo-add mvn:org.apache.activemq/activemq-karaf/5.19.1/xml/features karaf@root()> feature:install activemq-client/5.19.1 org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=activemq-client; type=karaf.feature; version="[5.19.1,5.19.1]"; filter:="(&(osgi.identity=activemq-client)(type=karaf.feature)(version>=5.19.1)(version<=5.19.1))" [caused by: Unable to resolve activemq-client/5.19.1: missing requirement [activemq-client/5.19.1] osgi.identity; osgi.identity=spring; type=karaf.feature; version="[5.0.0,6.0.0)"] at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341) at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:433) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:420) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:374) at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:256) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve activemq-client/5.19.1: missing requirement [activemq-client/5.19.1] osgi.identity; osgi.identity=spring; type=karaf.feature; version="[5.0.0,6.0.0)" at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341) ... 12 more ``` Tried to install activemq-client: ``` karaf@root()> feature:install activemq-client/5.19.1 org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=activemq-client; type=karaf.feature; version="[5.19.1,5.19.1]"; filter:="(&(osgi.identity=activemq-client)(type=karaf.feature)(version>=5.19.1)(version<=5.19.1))" [caused by: Unable to resolve activemq-client/5.19.1: missing requirement [activemq-client/5.19.1] osgi.identity; osgi.identity=spring; type=karaf.feature; version="[5.0.0,6.0.0)"] at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341) at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:433) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:420) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:374) at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:256) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve activemq-client/5.19.1: missing requirement [activemq-client/5.19.1] osgi.identity; osgi.identity=spring; type=karaf.feature; version="[5.0.0,6.0.0)" at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341) ... 12 more Error executing command: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=activemq-client; type=karaf.feature; version="[5.19.1,5.19.1]"; filter:="(&(osgi.identity=activemq-client)(type=karaf.feature)(version>=5.19.1)(version<=5.19.1))" [caused by: Unable to resolve activemq-client/5.19.1: missing requirement [activemq-client/5.19.1] osgi.identity; osgi.identity=spring; type=karaf.feature; version="[5.0.0,6.0.0)"] ``` Again, appreciate any advice. Regards, Sérgio Lemos
