1.概述
集成两个不同厂商的产品向来不是什么自在的活,本文试图提供一种可行的方案,集成weblogic与MQ。
我们的最终的目标是,部署在weblogic上的MDB可以自动接收到投放到MQ队列的消息,也可以通过JMS队MQ列往里投放消息。
2.集成方案
weblogic与MQ的集成方案大致有两种:
一是将MQ配置为weblogic的外部JMS服务器(foreign JMS server),第二种是weblogic的消息桥(messaging bridge)
本文中描述的是第一种方案,结构大致如下:
图画得较丑,且可能有失偏颇,仅供参考...
3.集成指引
其实本文的标题有点夸大,准确来说算是一篇step-by-step的配置指引吧,不废话了...
3.1.配置websphere MQ
3.1.1创建一个MQ队列管理器
首先创建一个测试用的MQ队列管理器,名为JustinMQ2(名字随便):
图1.1.创建队列管理器
图1.2.创建队列管理器
3.1.2创建两个本地队列application和approval:
图2.1
图2.2
完成以上步骤,我们可以通过MQ的Java API测试配置是否正确:
代码如下:
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.MQConstants;
/**
* via MQ API
* @author Justin
*
*/
public class TestViaAPI {
public static void main(String[] args) throws Exception {
String qManager = "JustinQM2";
String qManagerHost = "127.0.0.1";
String queueName = "application";
MQEnvironment.channel = "SYSTEM.DEF.SVRCONN";
MQEnvironment.hostname = qManagerHost;
MQQueueManager qMgr = new MQQueueManager(qManager);
System.out.println("open queue");
MQQueue mqQueue = qMgr.accessQueue(queueName, MQConstants.MQOO_INPUT_AS_Q_DEF
| MQConstants.MQOO_OUTPUT);
MQMessage mqMsg = new MQMessage();
mqMsg.write("test message".getBytes());
mqQueue.put(mqMsg);
System.out.println("close queue");
mqQueue.close();
System.out.println("close queue mamager");
qMgr.disconnect();
}
}
如果没抛异常,基本上就成功了。当然,是否真正成功还要到刚才创建的application队列看看:
图:使用API访问队列的结果
3.2绑定到JMS
下一步就是要绑定到JMS,然后通过JMS API访问MQ的队列,步骤如下:
3.2.1我们需要添加一个JMS受管对象(JNDI上下文),为了方便测试,我们使用sun的文件JNDI。
3.2.2.创建连接工厂(QueueConnectionFactory)
创建两个连接工厂applicationFactory和approvalFactory,步骤如下:
3.2.3.创建目标(Destination)
创建两个目标:applicationJMSQueue和approvalJMSQueue,步骤如下:
然后写个程序测试一下:
import java.util.Hashtable;
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;
/**
*
*
* @author Justin
*
*/
public class TestFSJNDI {
public static void main(String[] args) throws Exception {
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:/C:/Users/Justin/jndi");
Context jndiContext = new InitialContext(env);
QueueConnectionFactory sendFactory = (QueueConnectionFactory) jndiContext
.lookup("applicationFactory");
Queue queue = (Queue) jndiContext.lookup("applicationJMSQueue");
QueueConnection queueConnection = sendFactory.createQueueConnection();
queueConnection.start();
QueueSession queueSession = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
QueueSender queueSender = queueSession.createSender(queue);
TextMessage textMsg = queueSession
.createTextMessage("test post message via jndi");
queueSender.send(textMsg);
queueConnection.close();
}
}
运行后,查看队列中多出一条消息,成功。
- 大小: 22.9 KB
- 大小: 32.7 KB
- 大小: 15.3 KB
- 大小: 22 KB
- 大小: 51.2 KB
- 大小: 47.7 KB
- 大小: 73.1 KB
- 大小: 11.7 KB
- 大小: 50.2 KB
- 大小: 49.7 KB
- 大小: 59.5 KB
- 大小: 33.5 KB
- 大小: 43.9 KB
- 大小: 39 KB
- 大小: 22.8 KB
- 大小: 10.9 KB
分享到:
相关推荐
### WebSphere与Weblogic集成产品比较 #### 一、引言 随着企业信息化建设的深入发展,业务集成已成为企业IT架构的重要组成部分。本文旨在对比分析IBM WebSphere集成平台与BEA WebLogic集成平台在业务集成方面的...
### WebLogic与MQ集成配置详解 #### 一、概述 在现代企业级应用环境中,中间件扮演着极其重要的角色,特别是在实现不同系统间的通信时。本文将详细介绍如何将Oracle WebLogic Server 10.3与IBM WebSphere MQ 6.0...
此外,WebSphere还包含了Integration Bus、Commerce、Portal、MQ等一系列组件,满足企业不同层面的需求,如集成、电子商务、门户建设和消息传递。 相反,BEA WebLogic Server同样是一款强大的J2EE应用服务器,它以...
在Linux环境下,将WebLogic Server与IBM MQ集成是一项常见的任务,以便实现消息传递和应用程序间的通信。本集成涉及的主要知识点包括: 1. **IBM MQ**:IBM MQ(原名WebSphere MQ)是一款企业级的消息中间件,它...
例如,WebSphere可能更倾向于IBM的MQ系列,而WebLogic则可能与Oracle数据库有更好的兼容性。 10. **社区支持**:虽然两者都有庞大的用户社区和专业论坛,如IBM开发者Works和Oracle社区,WebSphere可能由于IBM的长期...
14. **WebLogic与其他技术集成**:讨论WebLogic Server与其他技术如Spring框架、OSGi、WebSphere MQ等的集成方法。 15. **故障排查与恢复**:提供常见问题的解决方案和故障恢复策略,帮助管理员快速定位和解决问题...
2. **与JMS集成**:WebLogic Server内置了JMS(Java Message Service)支持,允许与其他JMS提供者(如IBM WebSphere MQ)交互,实现消息传递和事件驱动架构。 3. **与SOA套件集成**:WebLogic Server是Oracle SOA ...
大多数商业J2EE应用服务器都内置了自己的JMS Provider,但独立的商业解决方案,如IBM WebSphere MQ,在业界仍然占据主导地位。 #### 四、安装ActiveMQ 1. **下载**:访问[ActiveMQ官方网站]...
- **与其他应用服务器的集成**:讨论如何将ActiveMQ集成到企业级应用服务器中,如WebSphere、WebLogic等,以便于在更复杂的环境中使用。 - **其他语言的支持**:除了Java之外,ActiveMQ还支持多种其他语言的客户端...
2. **商业JMS提供商**:如IBM WebSphere MQ、BEA WebLogic JMS、Oracle AQ、Sun Java System Message Queue、Sonic JMS和TIBCO Enterprise For JMS。这些商业产品通常包含在大型应用服务器中,或者作为独立的中间件...
7. 和谐的企业应用集成:SharePoint 提供了和谐的企业应用集成功能,帮助企业集成不同的应用程序,提高了企业的生产力。 8. 改进的菜单体验:SharePoint 提供了改进的菜单体验,帮助用户更方便地使用企业的应用程序...
在商业JMS provider市场,IBM WebSphere MQ、BEA WebLogic JMS、Oracle AQ等占据主导地位,但它们通常与特定的应用服务器捆绑销售,而ActiveMQ作为独立的开源JMS provider,更易被广泛应用于各种架构设计中。...
- 商业 JMS 提供商,如 IBM WebSphereMQ、BEA WebLogic JMS 等,它们通常集成在大型商业应用服务器中。 6. **安装与使用**: - 用户可以从 Apache 官方网站下载最新版本的 ActiveMQ 并按照指南进行安装配置。 - ...
5. **JMS Provider**:如IBM WebSphere MQ、Apache ActiveMQ或RabbitMQ等,它们实现JMS规范,提供消息的存储和传输服务。 6. **MDB配置**:在Java EE应用服务器中,MDB需要通过XML部署描述符(如ejb-jar.xml或META-...
此外,商业JMS提供商如IBM WebSphere MQ、BEA WebLogic JMS、Oracle AQ等也是竞争对手。然而,ActiveMQ凭借其使用NIO技术在性能上的优势,以及作为独立开源组件的灵活性,使其在多种架构设计中得到广泛应用。 在...
Oracle BPEL流程管理器提供了一个强大而灵活的平台,支持流程建模、异常管理、服务间的交互,以及与各种J2EE应用服务器(如Oracle AS,WebLogic,JBoss,WebSphere)的集成。此外,Oracle还提供了业务活动监视(BAM...
尽管ActiveMQ 在开源JMS提供商中脱颖而出,但仍有其他竞争对手,如JBoss的jBossMQ和jBoss Messaging,OpenJMS,以及IBM WebSphereMQ、BEA WebLogic JMS等商业产品。尽管这些产品都有各自的优点,但ActiveMQ的独立性...