У меня возникли проблемы при настройке посредника ActiveMQ через внешний XML-файл, проанализированный с помощью xBean.На данный момент, любая помощь, советы, указатели, советы или даже подбадривания приветствуются.Вот моя проблема:
Я пытаюсь использовать внешний XML-файл для настройки брокера.У меня есть следующий код в контексте моего весеннего комплекта:
<bean id="brokerFactory" class="org.apache.activemq.xbean.BrokerFactoryBean">
<property name="config" value="file:c:/activemq.xml" />
<property name="start" value="false" />
</bean>
Это должно связать с файлом конфигурации без каких-либо проблем.Вот как выглядит мой файл activemq.xml:
<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 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">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
<amq:broker useJmx="true" xmlns="http://activemq.apache.org/schema/core">
<networkConnectors>
<!--
<networkConnector uri="multicast://default?initialReconnectDelay=100" />
<networkConnector uri="static://(tcp://localhost:61616)" />
-->
</networkConnectors>
<persistenceFactory>
<journalPersistenceAdapterFactory journalLogFiles="5" dataDirectory="${basedir}/target/foo" />
</persistenceFactory>
<transportConnectors>
<transportConnector uri="tcp://localhost:61636" />
</transportConnectors>
</amq:broker>
</beans>
Как вы можете видеть, он довольно стандартный.При запуске моих пакетов я получаю следующее исключение:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brokerManager' defined in URL [bundle://7.0:0/META-INF/spring/bundle-context.xml]: Cannot resolve reference to bean 'brokerFactory' while setting bean property 'brokerFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brokerFactory' defined in URL [bundle://7.0:0/META-INF/spring/bundle-context.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 10 in XML document from OSGi resource[file:c:/activemq.xml|bnd.id=7|bnd.sym=genericenqueuer-engine] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'amq:broker'.
Я пробовал несколько конфигураций для задействованных намаспространств.Использование тегов посредника с объявлением "amq:"
и без него (<broker>
и <amq:broker>
) и указание конкретного номера версии для объявления activemq .xsd.Тем не менее, файл .xsd, похоже, не найден.Если я предоставлю номер версии для файла activemq .xsd, я получу это вместо:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brokerFactory' defined in URL [bundle://7.0:0/META-INF/spring/bundle-context.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean namespace mapping: http://activemq.apache.org/schema/core
Я использую версию 3.7 xbean-spring, которую можно найти здесь .Я попытался извлечь файл .xsd из моего com.springsource.org.apache.activemq-5.3.0.jar
файла пакета и экспортировать его в пакет в одном из моих пакетов, но парсер все еще не может его найти.Я также опубликовал ошибку в Geronimo Jira для проблемы.
Может кто-нибудь пролить свет на проблему?
Заранее спасибо,
Эдуардо.