设为首页 收藏本站
查看: 632|回复: 0

[经验分享] Spring JMS 整合Tomcat和Weblogic JMS

[复制链接]

尚未签到

发表于 2017-1-31 12:48:54 | 显示全部楼层 |阅读模式
本篇我们将继续使用上一篇日志的工程环境,只是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”;
DSC0000.jpg
5)      将Target选择指向AdminServer,点击”Finish”;
DSC0001.jpg
1.2. JMS Modules配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的”new”按钮;
3)      输入System Module的名称SystemModule-0,点击”Next”;
DSC0002.jpg
4)      将Servers表框中”AdminServer”前面的复选框选中,点击”Next”;
DSC0003.jpg
5)      选中” Would you like to add resources to this JMS system module?”,点击”Finish”;
DSC0004.jpg
1.3. JMS Subdeployments配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的”SystemModule-0”,然后点击”Subdeployments”选项卡中的”New”按钮;
3)      输入Subdeployment 的名称Subdeployment-0,点击”Next”;
DSC0005.jpg
4)      选中JMS Servers中”JMSServer-0”,点击”Finish”.
DSC0006.jpg
1.4. JMS Connection Factory配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3)      选择”Connection Factory”,点击”Next”;
DSC0007.jpg
4)      输入”Connection Factory”的名称ConnectionFactory-0和”JNDI”的名称weblogic.jms.ConnectionFactory0,点击”Next”;
DSC0008.jpg
5)      点击”Advanced Targeting”,将”Subdeployment”下拉选中Subdeployment-0;
6)      选中”JMS Servers”框中JMSServer-0,点击”Finish”;
DSC0009.jpg
1.5. JMS Queue配置
1)      在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2)      点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3)      选择”Queue”,点击”Next”;
DSC00010.jpg
4)      输入” Queue”的名称Queue -0和”JNDI”的名称weblogic.jms.Queue0,点击”Next”;
DSC00011.jpg
5)      将”Subdeployment”下拉选中Subdeployment-0,点击”Finish”;
DSC00012.jpg

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
DSC00013.jpg
5)      点击New,随便输入信息,按OK
DSC00014.jpg
可在控制台看到接受者能收到此消息
DSC00015.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-335746-1-1.html 上篇帖子: How tomcat works学习笔记(1) 下篇帖子: Windows系统下tomcat性能优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表