欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring整合Weblogic jms實例詳解

 更新時間:2019年10月30日 10:58:48   作者:詠吟  
這篇文章主要介紹了Spring整合Weblogic jms實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

本文主要介紹weblogic jms的配置,包括JMS 服務器和JMS 模塊(連接工廠、隊列、遠程 SAF 上下文、SAF 導入目的地、SAF 錯誤處理)的配置;并在Spring環(huán)境下進行消息的監(jiān)聽及發(fā)送;為了更多的使用webloigc jms的功能,發(fā)送的隊列使用saf配置的遠程weblogic jms隊列(兩邊的weblogic版本須一致),當然本地也是可以的。本文中demo所使用的軟件環(huán)境為:weblogic 10.3.6.0、spring5.1.2.RELEASE

注:saf配置的遠程隊列只能發(fā)送消息,不能監(jiān)聽消息。

1、weblogic jms配置

1.1、配置JMS 服務器

注:需配置持久性存儲,沒有就創(chuàng)建一個

1.2、配置JMS 模塊

下面的功能都是在JMS 模塊中配置;連接工廠、隊列、遠程 SAF 上下文、SAF 導入目的地、SAF 錯誤處理

這里就不一一截圖配置過程了,按頁面提示配置就行;配置結果如下

連接工廠需設置jndi,程序里會用到

SAF 遠程上下文配置的遠程地址及用戶名密碼信息

SAF 導入目的地配置的遠程的隊列消息及對應到本地的jndi

SAF 錯誤處理程序配置錯誤處理策略屬性,選配

隊列需設置jndi,程序里會用到

SAF 導入目的地配置的隊列消息如下:

點擊隊列名稱:

本地 JNDI 名稱程序里會用到,向該jndi發(fā)送消息實際會發(fā)送到遠程的隊列里。

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向該隊列發(fā)送消息,對應上面saf遠程目的地里隊列的本地jndi名稱,

testQueueReceive對該隊列進行監(jiān)聽,接受消息

jmsTemplate配置jms的模板

sender發(fā)送消息的類,把該類配置為定時任務,定時發(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ā)送消息的隊列
  @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來發(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、測試

1.發(fā)送消息

啟動程序后,每隔5秒中會往testQueueSend隊列(遠程隊列)中發(fā)送一條消息,可到weblogic控制臺查看消息.

2.接受消息

在weblogic控制臺手工往testQueueReceive隊列插入一條消息,程序日志會打印該消息內(nèi)容。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java 多態(tài)性詳解及常見面試題

    java 多態(tài)性詳解及常見面試題

    這篇文章主要介紹了java 多態(tài)性詳解及常見面試題的相關資料,這里對java 的多態(tài)性做了資料整理,并列舉常見的關于多態(tài)性的面試題,需要的朋友可以參考下
    2016-11-11
  • SpringBoot實現(xiàn)物品收藏功能

    SpringBoot實現(xiàn)物品收藏功能

    這篇文章主要介紹了SpringBoot實現(xiàn)物品收藏功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • java foreach循環(huán)為什么不能賦值的講解

    java foreach循環(huán)為什么不能賦值的講解

    這篇文章主要介紹了java foreach循環(huán)為什么不能賦值的講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java計算兩個日期之間相差天數(shù)的4種方法詳解

    java計算兩個日期之間相差天數(shù)的4種方法詳解

    這篇文章主要給大家介紹了關于java計算兩個日期之間相差天數(shù)的4種方法,本文簡短地介紹java中多種方式求兩個日期的差量,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • mybatis Plus 多表聯(lián)合查詢的實現(xiàn)示例

    mybatis Plus 多表聯(lián)合查詢的實現(xiàn)示例

    這篇文章主要介紹了mybatis Plus 多表聯(lián)合查詢的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java編程中隨機數(shù)的生成方式總結

    Java編程中隨機數(shù)的生成方式總結

    在Java中利用自帶的類庫可以有三種途徑可以產(chǎn)生隨機數(shù),這里我們舉了一些簡單的例子來進行Java編程中隨機數(shù)的生成方式總結,需要的朋友可以參考下
    2016-05-05
  • Java中IO流詳解

    Java中IO流詳解

    這篇文章主要介紹了java中的IO流詳細解讀,需要的朋友可以參考下
    2017-04-04
  • Java 并發(fā)編程學習筆記之Synchronized底層優(yōu)化

    Java 并發(fā)編程學習筆記之Synchronized底層優(yōu)化

    這篇文章主要介紹了Java 并發(fā)編程學習筆記之Synchronized底層優(yōu)化的相關資料,主要包含了重量級鎖,輕量級鎖,偏向鎖和其他優(yōu)化等方面,有需要的小伙伴可以參考下
    2016-05-05
  • 解決spring jpa中update的坑

    解決spring jpa中update的坑

    這篇文章主要介紹了spring jpa中update遇到的坑及解決方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中equals()知識點總結

    Java中equals()知識點總結

    在本篇文章里小編給大家分享的是關于Java中equals()知識點總結內(nèi)容,需要的朋友們可以學習參考下。
    2020-03-03

最新評論