我的activemq代理使用以下架构: -
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
file:////u//amqgod//schema//spring-beans.xsd
http://activemq.apache.org/schema/core
file:////u//amqgod//schema//activemq.xsd">
如果我从命令行启动我的应用程序但是在通过initd机制启动时出现以下错误,它运行正常: -
错误:java.lang.RuntimeException:无法执行启动任务。原因:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:X中的第23行 来自URL [文件:/prod/tools/base/etc/config/activemq/amq_prod_broker_config.xml]的ML文档无效;嵌套异常是org.xml.sax.SAXParseException;升 ineNumber:23; columnNumber:52; cvc-elt.1:找不到元素'beans'的声明。 java.lang.RuntimeException:无法执行启动任务。原因:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:XML文档中的第23行 URL [file:/prod/tools/base/etc/config/activemq/amq_prod_broker_config.xml]无效;嵌套异常是org.xml.sax.SAXParseException; lineNumb 呃:23; columnNumber:52; cvc-elt.1:找不到元素'beans'的声明。 在org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98) 在org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 在org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143) 在org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 在org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601) 在org.apache.activemq.console.Main.runTaskClass(Main.java:251) 在org.apache.activemq.console.Main.main(Main.java:107) 引起:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自URL的XML文档中的第23行
initd只是一个配置,可以在重启linux服务器时自动运行我的脚本。 请帮忙吗?
答案 0 :(得分:0)
你的模式位置很奇怪:你为什么用一些文件指定xsd://?
保留原始的xsd(来自spring,apcache,...)。只需用http://替换file://,如下所示:
<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 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
答案 1 :(得分:0)
我对此有点迟。我遇到了类似的问题。这可以通过包含正确的依赖
来解决<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.10.0</version>
</dependency>
或可以从here下载 要使xsd注册XBeanNamespaceHandler,这些配置已经完成( spring.handlers和spring.schemas存在于jar的META-INF文件夹中)