`
xpenxpen
  • 浏览: 704287 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring JMS 整合Tomcat和Weblogic JMS

    博客分类:
  • MQ
 
阅读更多
本篇我们将继续使用上一篇日志的工程环境,只是MQ改用Weblogic JMS

1. Weblogic JMS配置

1.1.  JMS Server配置
1)      启动weblogic11g 管理控制台;
2)      在左窗格中选择”Services”—“Messaging”—“JMS Servers”;
3)      点击右窗格的”New”按钮;
4)      输入JMS Server的名称JMSServer-0,点击”Next”;



5)      将Target选择指向AdminServer,点击”Finish”;



1.2. JMS Modules配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的”new”按钮;
3)      输入System Module的名称SystemModule-0,点击”Next”;



4)      将Servers表框中”AdminServer”前面的复选框选中,点击”Next”;



5)      选中” Would you like to add resources to this JMS system module?”,点击”Finish”;



1.3. JMS Subdeployments配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的”SystemModule-0”,然后点击”Subdeployments”选项卡中的”New”按钮;
3)      输入Subdeployment 的名称Subdeployment-0,点击”Next”;



4)      选中JMS Servers中”JMSServer-0”,点击”Finish”.



1.4. JMS Connection Factory配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3)      选择”Connection Factory”,点击”Next”;



4)      输入”Connection Factory”的名称ConnectionFactory-0和”JNDI”的名称weblogic.jms.ConnectionFactory0,点击”Next”;



5)      点击”Advanced Targeting”,将”Subdeployment”下拉选中Subdeployment-0;

6)      选中”JMS Servers”框中JMSServer-0,点击”Finish”;



1.5. JMS Queue配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3)      选择”Queue”,点击”Next”;



4)      输入” Queue”的名称Queue -0和”JNDI”的名称weblogic.jms.Queue0,点击”Next”;



5)      将”Subdeployment”下拉选中Subdeployment-0,点击”Finish”;




2.写Spring的配置文件,假设存在这个文件里:jms-weblogic.xml
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="weblogicJms" 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://localhost:7001
                </prop>
                <prop key="java.naming.factory.url.pkgs">
                    weblogic.jndi.factories
                </prop>
				<prop key="java.naming.security.principal">
				    weblogic
				</prop>
				<prop key="java.naming.security.credentials">
				    weblogic11
				</prop>
            </props>
        </property>
    </bean>
    
    <!-- Connection factory -->
    <bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="weblogic.jms.ConnectionFactory0" />
        <property name="jndiTemplate" ref="weblogicJms"/>
    </bean>
    
    <!-- Queue -->
    <bean id="jmsQueue" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="weblogic.jms.Queue0" />
        <property name="jndiTemplate" ref="weblogicJms"/>
    </bean>
    
    <!-- Receiver -->
    <bean id="jmsReceiver" class="com.xp.MessageQueueReceiver">
    </bean>
    
    <!-- Message Listener -->
    <bean id="listenerContainer"
        class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="jmsConnectionFactory"/>
        <property name="destination" ref="jmsQueue"/>
        <property name="messageListener" ref="jmsReceiver"/>
        <property name="autoStartup" value="true"/>
    </bean>
    
    <!-- Spring JMS Template -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate" lazy-init="true">
        <property name="connectionFactory" ref="jmsConnectionFactory" />
        <property name="defaultDestination" ref="jmsQueue" /> 
   </bean>
    
    <!-- Sender -->
    <bean id="jmsSender" class="com.xp.MessageQueueSender"
        lazy-init="true">
        <property name="jmsTemplate" ref="jmsTemplate"></property>
    </bean>
    
</beans>


其中java.naming.security.principal和java.naming.security.credentials是weblogic的用户名和密码
另外注释掉上一篇日志里用的jms-activemq.xml
可以发现,采用SpringJMS以后,从ActiveMQ切换到WeblogicJMS是多么的灵活,代码都不用改,就改一个配置文件

3.我们想通过Tomcat来访问WeblogicJMS,于是要导入以下Jar包,
wlclient.jar(可从C:\oracle\Middleware\wlserver_10.3\server\lib下找到并复制出来)

4.启动tomcat,发现出错了
java.security.AccessControlException: access denied (javax.management.MBeanTrustPermission register)

5.上网搜索找到解决问题的临时方法,修改%JAVA_HOME%\jre\lib\security下的java.policy
最后加一行
permission javax.management.MBeanTrustPermission "register";

6. 再次启动tomcat,没问题了。按照上一篇日志的测试方法,测试通过。

还可以在Weblogic管理台监控消息
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的” SystemModule-0””,然后点击”Queue-0”;
3)      点击"Monitoring"选项卡
4)     勾选SystemModule-0!Queue-0,点击Show messages



5)      点击New,随便输入信息,按OK



可在控制台看到接受者能收到此消息




  • 大小: 34.7 KB
  • 大小: 10.6 KB
  • 大小: 28.8 KB
  • 大小: 6.9 KB
  • 大小: 5.5 KB
  • 大小: 23 KB
  • 大小: 25 KB
  • 大小: 25.2 KB
  • 大小: 17.5 KB
  • 大小: 61.8 KB
  • 大小: 22 KB
  • 大小: 14.5 KB
  • 大小: 27 KB
  • 大小: 24 KB
  • 大小: 29.7 KB
  • 大小: 20.4 KB
分享到:
评论
1 楼 雁行 2013-10-29  
Spirng 能同时整合weblogic jms和activemq吗?

相关推荐

    spring-boot-reference.pdf

    Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...

    springboot参考指南

    使用Spring Data JPA和Mongo仓库 x. 67.10. 将Spring Data仓库暴露为REST端点 vii. 68. 数据库初始化 i. 68.1. 使用JPA初始化数据库 ii. 68.2. 使用Hibernate初始化数据库 iii. 68.3. 使用Spring JDBC初始化数据库 ...

    java面试题

    Java 软件工程师面试资料大整合 1 Java 面霸 1 1. int 和 Integer 有什么区别? 8 2. String 和StringBuffer的区别 8 3. 运行时异常与一般异常有何异同? 8 4. 说出ArrayList,Vector,LinkedList的存储性能和特性 8 5...

    非常苛刻的java工作要求

    2. 熟悉中间件Tomcat、jboss、Apache、Weblogic、WAS; 3. 熟悉各种Web前端技术,包括JavaScript、CSS、HTML4/5、(XHTML、XML、Ajax)、json、jstl、JQuery,jsp,对DWR、Bootstrap、EasyUI、DWZ、ExtJS有一定了解...

    “桂林高新杯”软件设计大赛.doc

    " " "5、Tomcat、JBoss、WebLogic以及WebSphere技术。 " "软件开发基础 "考核要点 "分值 "30 " "基础知识 "1、数据库基础; " " "2、数据结构; " " "3、程序设计基础; " " "4、网络协议; " " "5、计算机组成原理...

    Java面试宝典2010版

    10、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 11、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp...

    最新Java面试宝典pdf版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试笔试资料大全

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    JAVA面试宝典2010

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试宝典-经典

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    java面试题大全(2012版)

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试宝典2012版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7...

    java面试宝典2012

    1、Tomcat的优化经验 93 2、HTTP请求的GET与POST方式的区别 93 3、解释一下什么是servlet; 93 4、说一说Servlet的生命周期? 93 5、Servlet的基本架构 94 6、SERVLET API中forward() 与redirect()的区别? 94 7、什么...

    java基础题 很全面

    16. 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 22 17. 说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld....

    Java面试宝典2012新版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    JAVA上百实例源码以及开源项目

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    JAVA上百实例源码以及开源项目源代码

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

Global site tag (gtag.js) - Google Analytics