Интегрировать Spring (Rabbit) в Java-приложение?
Я пытаюсь интегрировать Spring в плагин HiveMQ (брокер MQTT). Мне удалось загрузить Spring-Context, и bean-компоненты на самом деле сканируются и могут быть автоматически подключены с помощью @Inject вместо @Autowire.
Когда я пытаюсь использовать Spring-Rabbit внутри этого плагина, Spring Framework жалуется, что он не может правильно работать с xml в моем spring-context.xml.
Вызывается: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: соответствующий подстановочный знак является строгим, но не найдено никакого объявления для элемента 'rabbit:connection-factory'.
Весенний контекст выглядит следующим образом:
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns = 'http://www.springframework.org/schema/beans'
xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xmlns:context="http://www.springframework.org/schema/context"
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation = 'http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit.xsd'>
<context:component-scan base-package="com.acme"/>
<rabbit:connection-factory id="connectionFactory"
addresses='localhost'
username='username'
password='password'
virtual-host='vhost'/>
</beans>
Я загружаю контекст следующим образом:
ClassLoader classLoader = this.getClass().getClassLoader();
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext();
ctx.setClassLoader(classLoader);
ctx.setConfigLocation("spring-context.xml");
ctx.refresh();
Когда я обычно запускаю приложение без контекста плагина HiveMQ, оно может найти все необходимое.
Любой намек, где искать?