activemq和jms_带有ActiveMQ和Maven的JMS Sender应用程序
activemq和jms
我們已經看到了如何使用ActiveMQ和Maven創建JMS Receiver應用程序 。 讓我們看看我們如何類似地創建JMS Sender應用程序 。
web.xml與創建接收器應用程序時使用的相同:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/jmsContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> </web-app>jmsContext.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"xmlns:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd"><bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"><property name="brokerURL" value="tcp://localhost:61616" /></bean><!-- <jms:listener-container container-type="default"connection-factory="connectionFactory" acknowledge="auto"><jms:listener destination="testQueue" ref="simpleMessageListener"method="onMessage" /></jms:listener-container> --><!-- To send JMS message --><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory" ref="connectionFactory" /><property name="defaultDestinationName" value="testQueue"/></bean><bean id="simpleMessageSender" class="com.jcombat.sender.SimpleMessageSender"><property name="jmsTemplate" ref="jmsTemplate" /></bean> </beans>注意,我們為jmsTemplate和messageSender類添加了兩個新bean,它們將使用jmsTemplate實例將消息發送到目標隊列。
現在讓我們創建一個消息發送者類SimpleMessageSender.java ,它實際上將發送消息:
package com.jcombat.sender;import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session;import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator;public class SimpleMessageSender {private JmsTemplate jmsTemplate;public void setJmsTemplate(JmsTemplate jmsTemplate) {this.jmsTemplate = jmsTemplate;}public void sendMessage(final String message){ jmsTemplate.send(new MessageCreator(){ @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage(message); }}); } }快完成了 現在,讓我們創建客戶端類TestClient.java ,它將從jmsContext獲取simpleMessageSender bean并通過調用它的sendMessage方法發送一些消息字符串,從而將消息放入已配置的隊列testQueue中 (如上面顯示的jmsContext文件內容中突出顯示的那樣) 。
package com.jcombat.client;import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext;import com.jcombat.sender.SimpleMessageSender;public class TestClient {@SuppressWarnings("resource")public static void main(String[] args) throws Exception {ApplicationContext jmsContext = null;jmsContext = new FileSystemXmlApplicationContext("path/to/jmsContext.xml");SimpleMessageSender messageSender = (SimpleMessageSender) jmsContext.getBean("simpleMessageSender");// Create a session within the connection.messageSender.sendMessage("hello");} }現在,將TestClient類作為Java應用程序運行。
驗證目標隊列上的消息
要驗證我們通過客戶端類發送的消息是否已成功到達目標隊列(即testQueue) ,登錄到Hawtio控制臺,并從左側列出的隊列中單擊,請單擊testQueue鏈接,該鏈接顯示了以下內容中的testQueue詳細信息:主要內容區域如下所示:
現在,單擊“瀏覽”選項卡下列出的消息。 我們可以看到與發送彈出消息相同的消息:
- 下載源代碼
 
翻譯自: https://www.javacodegeeks.com/2015/10/jms-sender-application-with-activemq-and-maven.html
activemq和jms
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的activemq和jms_带有ActiveMQ和Maven的JMS Sender应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: akka 消息发送接收_Akka型演员:
 - 下一篇: 联想电脑10代cpu主板(联想10代酷睿