weblogic 与jms事例配置

1.在WEBLOGIC12中配置JMS服务器

参考链接:http://blog.csdn.net/gxlstone/article/details/41378949

2.创建java project编写测试代码

(1) 创建一个java project(不是web项目)

(2) 将weblogic安装目录中的wlclient.jar加入classpath中(注意:weblogic老版本的话使用weblogic.jar), 具体路径:$Weblogic_HOME\wlserver_10.3\server\lib。

(3) 需要将javaee.jar加入到classpath,因为我们建的是java project项目,不会自动添加javaee包。注意:从官网下载javaee sdk,安装后lib中有这个包。

package com.jms;

import java.util.Hashtable;  

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

//生产者 
public class JMSSender {
	public static final String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";
	private static QueueConnectionFactory qconFactory;
	private static QueueConnection qcon;
	private static QueueSession qsession;
	private static QueueSender qsender;
	private static Queue queue;
	private static TextMessage msg;
	public static void init() throws NamingException, JMSException {
		   //init JNDI context
        String JNDIFactory = "weblogic.jndi.WLInitialContextFactory";//define JNDI context factory
        String providerUrl = "t3://localhost:7001"; //define weblogic JMS url
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, JNDIFactory);
        env.put(Context.PROVIDER_URL, providerUrl);
        Context ctx = new InitialContext(env);
        String queueName = "SevenQueue";//生成者队列
        String connFactoryJNDI = "myJMSConnectionFactory";//工厂
		//获取一个JMS连接工厂是为了获取与服务器的连接。前题是这个JMS工厂一定要事先创建好,注:查询的是连接工厂的JNDI的名字,不是连接工厂的名字。
		qconFactory = ((QueueConnectionFactory) ctx.lookup(connFactoryJNDI));
		//  创建一个列队或主题连接是为了获取与JMS会话的Session
		qcon = qconFactory.createQueueConnection();
		// 创建会话Session 是为了创建一个消息的发送者和发送内容类型。
		qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
		//创建一个列队来存储消息,是消息的存方的物理地址,前题是这个队列需要在weblogic里创建后。
		queue = ((Queue) ctx.lookup(queueName));
		///创建一个消息的发送者
		qsender = qsession.createSender(queue);
		//创建一个发送内容类型(Stream,byte,map,text,object)。
		msg = qsession.createTextMessage();//一个字符串对象
		//打开连接,设置发送文本内容。
		qcon.start();
		ctx = null;
	}

	public static void send(String message) throws JMSException {
		msg.setText(message);//设置发送内容
		qsender.send(msg);
	}
	public static void close() throws JMSException {
		if (qsender != null) {
			qsender.close();
		}
		if (qsession != null) {
			qsession.close();
		}
		if (qcon != null)
			qcon.close();
	}
    /**
     * @param args
     * @throws NamingException
     * @throws JMSException
     */
    public static void main(String[] args) throws NamingException, JMSException {
       init();
       send("haha");
       close();
    }  

}

  

package com.jms;

import java.util.Hashtable;
import java.util.Map;

import javax.jms.BytesMessage;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.StreamMessage;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.dom4j.Element;

import com.utils.BASE64;
import com.utils.XmlHelper;  

//消费者
public class JMSReceiver {
    public static void main(String[] args) throws NamingException, JMSException {  

    	//init JNDI context
        String JNDIFactory = "weblogic.jndi.WLInitialContextFactory";//define JNDI context factory
        String providerUrl = "t3://localhost:7001"; //define weblogic JMS url
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, JNDIFactory);
        env.put(Context.PROVIDER_URL, providerUrl);
        Context ctx = new InitialContext(env);  

        //find connection factory
        String connFactoryJNDI = "myJMSConnectionFactory"; //jms connectionFactory JNDI name
        QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx.lookup(connFactoryJNDI);
        //create queue connection
        QueueConnection qConn = (QueueConnection) connFactory.createConnection();
        //create session
        QueueSession qSession = qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
        //find queue by JNDI lookup
        Queue queue = (Queue) ctx.lookup("SevenQueue");  

        //create receiver
        QueueReceiver qReceiver = qSession.createReceiver(queue);
        //create message listener
        qReceiver.setMessageListener(new MessageListener() {  

            public void onMessage(Message msg) {  

                String msgText = "";
                double d = 0;
                 try {
                    if (msg instanceof TextMessage) {
                            msgText = ((TextMessage) msg).getText();
                        } else if (msg instanceof StreamMessage) {
                            msgText = ((StreamMessage) msg).readString();
                            d = ((StreamMessage) msg).readDouble();
                        } else if (msg instanceof BytesMessage) {
                            byte[] block = new byte[1024];
                            ((BytesMessage) msg).readBytes(block);
                            msgText = String.valueOf(block);
                        } else if (msg instanceof MapMessage) {
                            msgText = ((MapMessage) msg).getString("name");
                        }   

                } catch (JMSException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }    

                System.out.println(msgText + " " + d);
            }});  

        qConn.start();  

    }  

}

  

时间: 2024-08-30 14:01:57

weblogic 与jms事例配置的相关文章

weblogic虚拟路径的配置和使用

项目场景: 公司中医疗项目需要展示药品说明书的其他版本(图片或者PDF),由于其他版本文件存在Linux服务器上,服务器用的是weblogic, 无法直接访问文件,因此可以用weblogic的虚拟路径解决 解决的方法为:在weblogic.xml文件中配置要映射的路径为虚拟路径. <virtual-directory-mapping>             <local-path>D:/PRfcas</local-path>             <url-p

1.Weblogic通Eclipse调试配置(技术)

概述:在实际的的应用项目中,我们经常遇到本地应用程序没有问题,而部署到Weblogic上缺出现问题,查看日志并找不到原因,这时就需要调试部署上的程序与本地eclipse连接通,找到原因: 这里举例:java调用Tuxedo:在这里我们常用到的就是WTC与jolt,为了模拟生产环境,核心与前端通讯用的是WTC,我本地程序用的是jolt, 项目部署在weblogic上, (jolt与wtc发现不同:就是从核心获取查询文件jolt如果找不到文件从核心返回可以捕获异常,可以返回错误异常信息提示:而WTC

Weblogic的安装与配置

WebLogic是美国bea公司出品的一个application server确切的说是一个基于JavaEE架构的中间件,BEA WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的Java应用服务器.将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发.集成.部署和管理之中.它与Oracle应用服务器以及诸如Oracle JRockit和OracleCoherence这样的其他性能增强产品结合在一起构成了Oracle Web

weblogic数据库连接池的配置文件地址

bea\user_projects\domains\gmap\config\jdbc\webdev-jdbc.xml 是webdev-jdbc.xml文件,并不是config文件. 文件内部如下图的样子:在<url></url>内填写数据库地址:端口号:数据库名称

项目从weblogic转移到tomcat时JMS服务的更换

在tomcat服务器中配置jms 项目原本使用的是weblogic的JMS服务和Spring的JMSTemplate ,这样配置可以不修改项目中消息操作的代码 一.下载activemq 解压后启动,访问http://localhost:8161/admin 默认账户密码  admin:admin,点击Queue,新建一个队列TestQueue1 二.在tomcat/webapp/META-INF下添加context.xml 分别配置数据源,activemq连接工厂,队列,导入activemq-a

Spring整合Weblogic jms实战

本文主要介绍weblogic jms的配置,包括JMS 服务器和JMS 模块(连接工厂.队列.远程 SAF 上下文.SAF 导入目的地.SAF 错误处理)的配置:并在Spring环境下进行消息的监听及发送:为了更多的使用webloigc jms的功能,发送的队列使用saf配置的远程weblogic jms队列(两边的weblogic版本须一致),当然本地也是可以的.本文中demo所使用的软件环境为:weblogic 10.3.6.0.spring 5.1.2.RELEASE 注:saf配置的远程

配置WebLogic的详细步骤

1.安装好WebLogic后,进入配置阶段,点击"Getting started with WebLogic Server 10.3.6" 2.进入"Fusion Middleware 配置向导",选择"创建新的WebLogic域",单击"下一步" 3.选择域源,这里选择默认的 4.输入域的名称和位置,可以修改,也可以选择默认的 5.配置管理员用户名和口令,用户口令选择字母数字和特殊字符 6.选择"生产模式"

Tomcat 使用jms 采集需要配置

Tomcat 使用JMS采集配置需要加入以后配置参数,本示例是在 eclipse 下启动tomcat中的配置. 在tomcat Arguments选择卡的VM arguments中加入: -Dcom.sun.management.jmxremote.port=9089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 也可以在tomcat 安装目录下的 bin/ca

Weblogic配置故障转移

前提:实现负载均衡,即当访问项目时,会通过代理服务器将请求分发到不同的服务器上. weblogic的故障转移配置 在项目的WEB-INF目录下创建weblogic.xml <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd&qu