Java JMS消息传递
我有一个向服务器发送消息和服务器通过qpid消息接收消息的工作示例。下面是要发送到服务器的简单hello world: 下面是接收请求并发送响应的服务器(当前客户端未接收响应): 这是我的属性文件: 它们都工作得很好,我可以通过qpid JMX管理控制台看到qpid队列中的消息。这些示例可从下载(有人可能也需要) 我以前用spring做过Jboss消息传递,但我不能用qpid做同样的事情。在ApplicationContext中使用jboss,我得到了如下bean JNDemplate、ConConnectionFactory、destinationQueue和jmscontainer:Java JMS消息传递,java,spring,jboss,messaging,amqp,Java,Spring,Jboss,Messaging,Amqp,我有一个向服务器发送消息和服务器通过qpid消息接收消息的工作示例。下面是要发送到服务器的简单hello world: 下面是接收请求并发送响应的服务器(当前客户端未接收响应): 这是我的属性文件: 它们都工作得很好,我可以通过qpid JMX管理控制台看到qpid队列中的消息。这些示例可从下载(有人可能也需要) 我以前用spring做过Jboss消息传递,但我不能用qpid做同样的事情。在ApplicationContext中使用jboss,我得到了如下bean JNDemplate、C
<!-- Queue configuration -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.provider.url">jnp://localhost:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.security.principal">admin</prop>
<prop key="java.naming.security.credentials">admin</prop>
</props>
</property>
</bean>
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<bean id="queueDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName">
<value>queue/testQueue</value>
</property>
</bean>
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="queueDestination" />
<property name="messageListener" ref="listener" />
</bean>
org.jnp.interfaces.NamingContextFactory
jnp://localhost:1099
org.jboss.naming:org.jnp.interfaces
管理
管理
队列/测试队列
当然,发送者和听者:
<bean id="sender" class="com.practice.Sender">
<property name="connectionFactory" ref="connectionFactory" />
<property name="queueDestination" ref="queueDestination" />
</bean>
<bean id="listener" class="com.practice.MsgListener" />
现在我想用spring上下文逻辑重写这个qpid示例。有人能帮我吗?Spring提供了JmsTemplate类。查看包含如何设置模板(使用activemq)示例的网站 对于您的特定示例,请尝试将
jmsContainer
替换为:
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
springsource站点上也有关于的很好的文档,很抱歉,我无法正确配置spring appcontext,您可以发布其他配置bean吗?对于您的示例,它不一定是我的,所以我可以看到示例,然后在我的示例中实现
public class MessageSender {
private Destination destination;
private JmsTemplate jmsTemplate;
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public void setDestination(Destination destination) {
this.destination = destination;
}
public void sendMessage() {
MessageCreator creator = new MessageCreator() {
public Message createMessage(Session session) {
TextMessage message = null;
try {
message = session.createTextMessage();
message.setStringProperty("text", "Hello, World!");
}
catch (JMSException e) {
e.printStackTrace();
}
return message;
}
};
jmsTemplate.send(destination, creator);
}
}