我有一个 activemq 代理,我想将其配置拆分为多个文件。我想准备一个单独的配置文件,它会自动生成,并且只包含队列的定义。
文件 1:activemq.xml
<beans ...>
<broker ...>
</broker>
</beans>
文件 2:queues.xml
<beans ...>
<broker ...>
<destinations>
<queue physicalName="q1"/>
</destinations>
</broker>
</beans>
我尝试使用:
春季进口:
<import resource="queues.xml"/>
但得到了
错误:org.springframework.beans.factory.BeanCreationException:在类路径资源[queues.xml]中定义名称为“org.apache.activemq.xbean.XBeanBrokerService#1”的bean创建错误:调用init方法失败;嵌套异常是 javax.management.InstanceAlreadyExistsException: org.apache.activemq:type=Broker,brokerName=localhost org.springframework.beans.factory.BeanCreationException:创建名为 'org.apache.activemq.xbean.XBeanBrokerService#1' 的 bean 时出错在类路径资源 [queues.xml] 中定义:调用 init 方法失败;嵌套异常是 javax.management.InstanceAlreadyExistsException : org.apache.activemq:type=Broker,brokerName=localhost
X包括:
activemq.xml:
<beans ...
xmlns:xi="http://www.w3.org/2001/XInclude"
>
<broker ...>
<xi:include href="queues.xml" parse="xml"/>
</broker>
</beans>
但得到了
错误:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:类路径资源 [activemq.xml] 中的 XML > 文档中的第 142 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:142;列号:45;cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“xi:include”的声明。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源 [activemq.xml] 的 XML 文档中的第 142 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:142;列号:45;cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“xi:include”的声明。
XML 实体 activemq.xml
<!DOCTYPE beans [
<!ENTITY queues SYSTEM "queues.xml">
]>
<beans ...>
<broker ...>
&queues;
</broker>
</beans>
但得到了
错误:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源 [activemq.xml] 的 XML 文档中的第 28 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:28;列号:3;必须声明元素类型“bean”。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源 [activemq.xml] 的 XML 文档中的第 28 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:28;列号:3;必须声明元素类型“bean”。
有任何想法吗?提前致谢。