Извините, я новичок в мире amqp
. Я пытаюсь написать простое приложение:
public class HelloApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
final TestSender bean = context.getBean(TestSender.class);
bean.sendMessage();
}
}
@Component
public class TestSender {
@Autowired
private RabbitTemplate template;
public void sendMessage() {
final Message message = new Message("Sth".getBytes(), new MessageProperties());
template.send(message);
System.out.println("Was sent");
}
}
@Component
public class MessageReceiver implements ChannelAwareMessageListener{
@Override
public void onMessage(Message message, Channel channel) throws Exception {
System.out.println("RECEIVE "+message.getBody().toString());
}
И .xml
файлов:
spring-amqp.xml
<?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: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/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<rabbit:connection-factory id="connectionFactory" host="localhost"/>
<rabbit:admin connection-factory="connectionFactory"/>
<rabbit:template connection-factory="connectionFactory" id="rabbitTemplate" channel-transacted="true"/>
<rabbit:queue name="userMesssageQueue" />
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="lis" queue-names="userMesssageQueue"/>
</rabbit:listener-container>
<bean id="transactionManager" class="org.springframework.amqp.rabbit.transaction.RabbitTransactionManager">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<bean id="lis" class="foo.bar.MessageReceiver"/>
spring-config.xml
<?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"
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.xsd">
<context:annotation-config />
<context:component-scan base-package="foo.bar"/>
<import resource="spring-amqp.xml"/>
</beans>
Когда я запускаю это приложение, я вижу:
Was sent
Но хотелось бы увидеть:
Was sent
RECEIVE ...
Что случилось??