本篇我们将继续使用上一篇日志的工程环境,只是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”;
[img]http://dl.iteye.com/upload/attachment/600216/2193ecd6-ccf0-38a2-bdd3-9709c4661085.jpg[/img]
5) 将Target选择指向AdminServer,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600218/e6f7becb-b6ba-3788-823c-927270f7a22b.jpg[/img]
1.2. JMS Modules配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的”new”按钮;
3) 输入System Module的名称SystemModule-0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600220/27df49e2-f7ff-3ef9-805e-ed104fe10973.jpg[/img]
4) 将Servers表框中”AdminServer”前面的复选框选中,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600222/c4657224-79bc-3687-8b79-5cc151db8b92.jpg[/img]
5) 选中” Would you like to add resources to this JMS system module?”,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600224/1fd84449-ef10-31ff-a256-f1558273ce2d.jpg[/img]
1.3. JMS Subdeployments配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的”SystemModule-0”,然后点击”Subdeployments”选项卡中的”New”按钮;
3) 输入Subdeployment 的名称Subdeployment-0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600226/f72976be-3475-3082-9f61-957e52a6499c.jpg[/img]
4) 选中JMS Servers中”JMSServer-0”,点击”Finish”.
[img]http://dl.iteye.com/upload/attachment/600228/2f80ad75-2803-3655-9b7f-223ed1a77afd.jpg[/img]
1.4. JMS Connection Factory配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3) 选择”Connection Factory”,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600230/66788002-ea4f-3ad7-ac51-3aaa9254c938.jpg[/img]
4) 输入”Connection Factory”的名称ConnectionFactory-0和”JNDI”的名称weblogic.jms.ConnectionFactory0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600232/469d486d-f5c5-3a3f-9a2a-e114901f9d98.jpg[/img]
5) 点击”Advanced Targeting”,将”Subdeployment”下拉选中Subdeployment-0;
6) 选中”JMS Servers”框中JMSServer-0,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600234/5a8121b9-ff51-39aa-a95f-0b2f11e2419a.jpg[/img]
1.5. JMS Queue配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3) 选择”Queue”,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600236/ac4f08d7-0820-3e36-bf71-c8756cb2863d.jpg[/img]
4) 输入” Queue”的名称Queue -0和”JNDI”的名称weblogic.jms.Queue0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600238/6c3222d1-a40b-39db-a595-8a89619b690b.jpg[/img]
5) 将”Subdeployment”下拉选中Subdeployment-0,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600240/187f73ba-e23f-3690-8362-80b64ec47fdf.jpg[/img]
2.写Spring的配置文件,假设存在这个文件里:jms-weblogic.xml
其中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
[img]http://dl.iteye.com/upload/attachment/600243/d7962820-5b8f-382d-8326-50cdaaa3995d.jpg[/img]
5) 点击New,随便输入信息,按OK
[img]http://dl.iteye.com/upload/attachment/600245/72f1f21a-b5ef-30d5-a731-0a594586f040.jpg[/img]
可在控制台看到接受者能收到此消息
[img]http://dl.iteye.com/upload/attachment/600247/fe232179-fdf8-3e5f-93e0-95d21387ab7b.jpg[/img]
1. Weblogic JMS配置
1.1. JMS Server配置
1) 启动weblogic11g 管理控制台;
2) 在左窗格中选择”Services”—“Messaging”—“JMS Servers”;
3) 点击右窗格的”New”按钮;
4) 输入JMS Server的名称JMSServer-0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600216/2193ecd6-ccf0-38a2-bdd3-9709c4661085.jpg[/img]
5) 将Target选择指向AdminServer,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600218/e6f7becb-b6ba-3788-823c-927270f7a22b.jpg[/img]
1.2. JMS Modules配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的”new”按钮;
3) 输入System Module的名称SystemModule-0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600220/27df49e2-f7ff-3ef9-805e-ed104fe10973.jpg[/img]
4) 将Servers表框中”AdminServer”前面的复选框选中,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600222/c4657224-79bc-3687-8b79-5cc151db8b92.jpg[/img]
5) 选中” Would you like to add resources to this JMS system module?”,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600224/1fd84449-ef10-31ff-a256-f1558273ce2d.jpg[/img]
1.3. JMS Subdeployments配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的”SystemModule-0”,然后点击”Subdeployments”选项卡中的”New”按钮;
3) 输入Subdeployment 的名称Subdeployment-0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600226/f72976be-3475-3082-9f61-957e52a6499c.jpg[/img]
4) 选中JMS Servers中”JMSServer-0”,点击”Finish”.
[img]http://dl.iteye.com/upload/attachment/600228/2f80ad75-2803-3655-9b7f-223ed1a77afd.jpg[/img]
1.4. JMS Connection Factory配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3) 选择”Connection Factory”,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600230/66788002-ea4f-3ad7-ac51-3aaa9254c938.jpg[/img]
4) 输入”Connection Factory”的名称ConnectionFactory-0和”JNDI”的名称weblogic.jms.ConnectionFactory0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600232/469d486d-f5c5-3a3f-9a2a-e114901f9d98.jpg[/img]
5) 点击”Advanced Targeting”,将”Subdeployment”下拉选中Subdeployment-0;
6) 选中”JMS Servers”框中JMSServer-0,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600234/5a8121b9-ff51-39aa-a95f-0b2f11e2419a.jpg[/img]
1.5. JMS Queue配置
1) 在左窗格中选择”Services”—“Messaging”—“JMS Modules”;
2) 点击右窗格的” SystemModule-0””,然后点击”New”按钮;
3) 选择”Queue”,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600236/ac4f08d7-0820-3e36-bf71-c8756cb2863d.jpg[/img]
4) 输入” Queue”的名称Queue -0和”JNDI”的名称weblogic.jms.Queue0,点击”Next”;
[img]http://dl.iteye.com/upload/attachment/600238/6c3222d1-a40b-39db-a595-8a89619b690b.jpg[/img]
5) 将”Subdeployment”下拉选中Subdeployment-0,点击”Finish”;
[img]http://dl.iteye.com/upload/attachment/600240/187f73ba-e23f-3690-8362-80b64ec47fdf.jpg[/img]
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
[img]http://dl.iteye.com/upload/attachment/600243/d7962820-5b8f-382d-8326-50cdaaa3995d.jpg[/img]
5) 点击New,随便输入信息,按OK
[img]http://dl.iteye.com/upload/attachment/600245/72f1f21a-b5ef-30d5-a731-0a594586f040.jpg[/img]
可在控制台看到接受者能收到此消息
[img]http://dl.iteye.com/upload/attachment/600247/fe232179-fdf8-3e5f-93e0-95d21387ab7b.jpg[/img]