本文主要介紹weblogic jms的配置,包括JMS 服務(wù)器和JMS 模塊(連接工廠、隊(duì)列、遠(yuǎn)程 SAF 上下文、SAF 導(dǎo)入目的地、SAF 錯(cuò)誤處理)的配置;并在Spring環(huán)境下進(jìn)行消息的監(jiān)聽及發(fā)送;為了更多的使用webloigc jms的功能,發(fā)送的隊(duì)列使用saf配置的遠(yuǎn)程weblogic jms隊(duì)列(兩邊的weblogic版本須一致),當(dāng)然本地也是可以的。本文中demo所使用的軟件環(huán)境為:weblogic 10.3.6.0、spring5.1.2.RELEASE
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的漣水網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
注:saf配置的遠(yuǎn)程隊(duì)列只能發(fā)送消息,不能監(jiān)聽消息。
1、weblogic jms配置
1.1、配置JMS 服務(wù)器
注:需配置持久性存儲(chǔ),沒(méi)有就創(chuàng)建一個(gè)
1.2、配置JMS 模塊
下面的功能都是在JMS 模塊中配置;連接工廠、隊(duì)列、遠(yuǎn)程 SAF 上下文、SAF 導(dǎo)入目的地、SAF 錯(cuò)誤處理
這里就不一一截圖配置過(guò)程了,按頁(yè)面提示配置就行;配置結(jié)果如下
連接工廠需設(shè)置jndi,程序里會(huì)用到
SAF 遠(yuǎn)程上下文配置的遠(yuǎn)程地址及用戶名密碼信息
SAF 導(dǎo)入目的地配置的遠(yuǎn)程的隊(duì)列消息及對(duì)應(yīng)到本地的jndi
SAF 錯(cuò)誤處理程序配置錯(cuò)誤處理策略屬性,選配
隊(duì)列需設(shè)置jndi,程序里會(huì)用到
SAF 導(dǎo)入目的地配置的隊(duì)列消息如下:
點(diǎn)擊隊(duì)列名稱:
本地 JNDI 名稱程序里會(huì)用到,向該jndi發(fā)送消息實(shí)際會(huì)發(fā)送到遠(yuǎn)程的隊(duì)列里。
2、spring配置
增加applicationContext-jms.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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:security="http://www.springframework.org/schema/security" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.3.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd"> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop> <prop key="java.naming.provider.url">t3://10.39.196.10:7001</prop> <prop key="java.naming.security.principal">weblogic</prop> <prop key="java.naming.security.credentials">weblogic1</prop> </props> </property> </bean> <bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate" ref="jndiTemplate" /> <property name="proxyInterface" value="javax.jms.ConnectionFactory" /> <property name="jndiName" value="ConnectionFactory-test" /> </bean> <bean id="testQueueSend" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="testQueueSend" /> <property name="jndiTemplate" ref="jndiTemplate" /> </bean> <bean id="testQueueReceive" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="testQueue" /> <property name="jndiTemplate" ref="jndiTemplate" /> </bean> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="jmsConnectionFactory" /> </bean> <bean id="sender" class="com.inspur.demo.jms.Sender"> </bean> <task:scheduled-tasks> <task:scheduled ref="sender" method="hello" cron="0/5 * * * * ?" /> </task:scheduled-tasks> <bean id="receiver" class="com.inspur.demo.jms.Receiver"> </bean> <bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="jmsConnectionFactory" /> <property name="destination" ref="testQueueReceive" /> <property name="messageListener" ref="receiver" /> <property name="autoStartup" value="true" /> </bean> </beans>
jndiTemplate配置weblogic的連接信息
jmsConnectionFactory配置連接工廠
testQueueSend向該隊(duì)列發(fā)送消息,對(duì)應(yīng)上面saf遠(yuǎn)程目的地里隊(duì)列的本地jndi名稱,
testQueueReceive對(duì)該隊(duì)列進(jìn)行監(jiān)聽,接受消息
jmsTemplate配置jms的模板
sender發(fā)送消息的類,把該類配置為定時(shí)任務(wù),定時(shí)發(fā)送消息;
receiver監(jiān)聽的類
listenerContainer監(jiān)聽容器
3、類信息
發(fā)送者:
package com.inspur.demo.jms; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; public class Sender { protected static Logger logger = LoggerFactory.getLogger(Sender.class); //發(fā)送消息的隊(duì)列 @Autowired @Qualifier("testQueueSend") private Destination destination; @Autowired private JmsTemplate jmsTemplate; public void hello() { String message = System.currentTimeMillis() + "-hello"; logger.info("Message Send:{}", message); jmsTemplate.send(destination, new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage(message); } }); } }
使用JmsTemplate來(lái)發(fā)送消息。
接受者:
package com.inspur.demo.jms; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Receiver implements MessageListener { protected static Logger logger = LoggerFactory.getLogger(Receiver.class); @Override public void onMessage(Message message) { try { String text = ""; if (message instanceof TextMessage) { text = ((TextMessage) message).getText(); } logger.info("Message received:{}", text); } catch (JMSException e) { e.printStackTrace(); } } }
4、測(cè)試
1.發(fā)送消息
啟動(dòng)程序后,每隔5秒中會(huì)往testQueueSend隊(duì)列(遠(yuǎn)程隊(duì)列)中發(fā)送一條消息,可到weblogic控制臺(tái)查看消息.
2.接受消息
在weblogic控制臺(tái)手工往testQueueReceive隊(duì)列插入一條消息,程序日志會(huì)打印該消息內(nèi)容。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
當(dāng)前名稱:Spring整合Weblogicjms實(shí)例詳解
網(wǎng)頁(yè)鏈接:http://vcdvsql.cn/article42/pephec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、用戶體驗(yàn)、搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站、全網(wǎng)營(yíng)銷推廣、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)