无法从 amon 在 activemq 中加载 monlets
Posted
技术标签:
【中文标题】无法从 amon 在 activemq 中加载 monlets【英文标题】:Cannot load monlets in activemq from amon 【发布时间】:2013-08-02 14:00:51 【问题描述】:我想在我的 activemq 中加载 amon monlets。我有 activeMQ 5.8.0v 和 amon-2.0.0。
从用户指南我尝试部署 monlets,他们说使用 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<package>com.acme.monlets</package>
</camelContext>
但是当我启动 activemq 时,它会出现以下异常。
2013-08-01 19:57:23,874 | INFO | Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@41d13c26: startup date [Thu Aug 01 19:57:23 IST 2013]; root of context hierarchy | org.apache.activemq.xbean.XBeanBrokerFactory$1 | main
2013-08-01 19:57:25,036 |错误 |加载失败:类路径资源 [activemq.xml],原因:来自类路径资源 [activemq.xml] 的 XML 文档中的第 162 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:162;列号:73; cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“camelContext”的声明。 | org.apache.activemq.xbean.XBeanBrokerFactory |主要的 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源 [activemq.xml] 的 XML 文档中的第 162 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:162;列号:73; cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“camelContext”的声明。 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 在 org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111) 在 org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104) 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:530) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:444) 在 org.apache.xbean.spring.context.ResourceXmlApplicationContext.(ResourceXmlApplicationContext.java:64) 在 org.apache.xbean.spring.context.ResourceXmlApplicationContext.(ResourceXmlApplicationContext.java:52) 在 org.apache.activemq.xbean.XBeanBrokerFactory$1.(XBeanBrokerFactory.java:101) 在 org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:101) 在 org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:65) 在 org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71) 在 org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54) 在 org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:125) 在 org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:84) 在 org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 在 org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:150) 在 org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 在 org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.activemq.console.Main.runTaskClass(Main.java:262) 在 org.apache.activemq.console.Main.main(Main.java:115) 引起:org.xml.sax.SAXParseException;行号:162;列号:73; cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“camelContext”的声明。 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:453) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3232) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1912) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:741) 在 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) 在 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) 在 com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:237) 在 com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300) 在 org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) ... 26 更多
请帮忙
【问题讨论】:
【参考方案1】:您需要将 Camel 命名空间添加到 XML 文件的顶部,例如类似
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
您可以在 Apache ActiveMQ 附带的 conf/camel.xml 文件中看到一个示例
【讨论】:
以上是关于无法从 amon 在 activemq 中加载 monlets的主要内容,如果未能解决你的问题,请参考以下文章