【问题标题】:Activemq broker not starting in Servicemix 5.3.0Activemq 代理未在 Servicemix 5.3.0 中启动
【发布时间】:2015-02-16 13:15:36
【问题描述】:

我创建了下面的 activemq 代理配置并尝试在 servicemix 5.3.0 中安装。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:broker="http://activemq.apache.org/schema/core"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

    <bean
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />

    <broker:broker brokerName="myBroker1" dataDirectory="${karaf.data}/activemq/myBroker1"
        useShutdownHook="false" startAsync="true">

        <broker:destinations>
            <broker:queue physicalName="SOME.QUEUE" />
        </broker:destinations>

        <!-- The transport connectors ActiveMQ will listen to -->
        <broker:transportConnectors>
            <broker:transportConnector name="openwire" uri="tcp://localhost:61617" />
            <broker:transportConnector name="stomp" uri="stomp://localhost:61614" />
        </broker:transportConnectors>

    </broker:broker>

</beans>

我在 servicemix 5.3.0 日志中收到以下错误

2014-12-17 14:03:17,959 |错误 | xtenderThread-13 | 上下文加载器监听器 | 121 - org.springframework.osgi.extender - 1.2.1 |应用程序上下文 刷新失败 (OsgiBundleXmlApplicationContext(bundle=com.att.ebiz.mq-broker-broker1, config=osgibundle:/META-INF/spring/*.xml)) org.springframework.beans.factory.BeanDefinitionStoreException: 无法识别的 xbean 命名空间映射: http://activemq.apache.org/schema/core 在 org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[88:org.apache.xbean.spring:3.16.0] 在 org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[88:org.apache.xbean.spring:3.16.0] 在 org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[88:org.apache.xbean.spring:3.16.0] 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:195)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)[76:org.apache.servicemix.bundles.spring-beans:3.2.9.RELEASE_1] 在 org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:164)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:136)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[78:org.apache.servicemix.bundles.spring-context:3.2.9.RELEASE_1] 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[78:org.apache.servicemix.bundles.spring-context:3.2.9.RELEASE_1] 在 org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationContext.java:69)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.java:269)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationContext.java:247)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:214)[121:org.springframework.osgi.extender:1.2.1] 在 org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:169)[121:org.springframework.osgi.extender:1.2.1] 在 org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175)[120:org.springframework.osgi.core:1.2.1] 在 org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:716)[121:org.springframework.osgi.extender:1.2.1] 在 java.lang.Thread.run(Thread.java:745)[:1.7.0_71]

代理没有启动。请帮忙。谢谢。

【问题讨论】:

  • 尽量不要使用“broker:”,即代替使用
  • 我试过删除 broker: 还是一样。

标签: xml spring activemq apache-servicemix


【解决方案1】:

我们目前在 ServiceMix 5.3.x 和 5.4.x 中存在一个问题,即 Karaf 2.4.x (https://issues.apache.org/jira/browse/SM-2414) 中缺少 Spring Deployer。

作为一种解决方法,您可以在 ServiceMix 5.3.0 上手动安装它

osgi:install -s mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/2.4.0

在 5.3.1 和 5.4.0 上:

osgi:install -s mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/2.4.1

希望对你有帮助。

【讨论】:

    【解决方案2】:

    我找到了问题的解决方案,而不是专门针对该错误。我使用了蓝图,它工作正常。下面是蓝图代理配置

    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
        xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
        xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
        xmlns:broker="http://activemq.apache.org/schema/core">
    
        <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
    
        <broker:broker brokerName="myBroker1"
            dataDirectory="${karaf.data}/activemq/myBroker1" useShutdownHook="false"
            startAsync="true">
            <broker:destinations>
                <broker:queue physicalName="SOME.QUEUE" />
            </broker:destinations>
    
            <broker:transportConnectors>
                <broker:transportConnector name="openwire"
                    uri="tcp://localhost:61617" />
                <broker:transportConnector name="stomp"
                    uri="stomp://localhost:61614" />
            </broker:transportConnectors>
        </broker:broker> </blueprint>
    

    【讨论】:

      猜你喜欢
      • 2015-04-27
      • 2012-01-09
      • 2012-05-31
      • 2015-01-12
      • 1970-01-01
      • 2016-01-25
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多