weblogic8.13配置JMS的步骤
1)进入consle控制台
2)mydomain->服务->JMS->连接工厂->配置新的JMS Connection Factory :指定JNDI名称 jms/SendJMSFactory,客户端ID,指定目标和部署myserver
暂时不指定客户端ID,因为MessageDrivenBean跟消息发送端都用到这个JMSConnectionFactory会抛出weblogic.jms.common.InvalidClientIDException
3)mydomain->服务->JMS->存储->配置新的JMS File Store :指定目录
4)mydomain->服务->服务器->配置新的JMS Server :选择第3步配置好的持久性存储 ,指定目标和部署myserver
5)给配置好的MyJMS Server->目标->配置新的 JMS Queue 指定 JNDI jms/SendJMSQueue
消息发送端
服务器URL: t3://localhost:7001
连接工厂: jms/SendJMSFactory
队列: jms/SendJMSQueue
可以点击mydomain->服务器->myserver->常规->查看JNDI树 查看时否已经有了两个jms的JNDI,有则表示部署成功了
每一个消息驱动EJB监听一个关联的JMS目的地。如果
这个JMS目的地被部署在另外一个Weblogic服务器实例
或者是外部的JMS提供者,这样得不到JMS目的地,这种情况下
EJB容器自动试探去连接JMS服务器,如果JMS重新启动,消息驱动Bean
就又可以接受消息了
jms-polling-interval-seconds 定义扫描监听JMS的间隔时间,默认10秒
6)使用Spring开发JMS消息发送端
JMSSender.java
package.com.corp.service;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
/**
* @author Administrator
*/
public class JMSSender {
private static Log log = LogFactory.getLog(JMSSender.class);
private JmsTemplate jmsTemplate;
/**
* @return Returns the jmsTemplate.
*/
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
/**
* @param jmsTemplate
* The jmsTemplate to set.
*/
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public void sendMessage(final String s) {
jmsTemplate.send(new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
log.debug(“Creating the message from loan parameters.”);
TextMessage textMessage = session.createTextMessage(s);
return textMessage;
}
});
}
}
applicationContext.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN” “http://www.springframework.org/dtd/spring-beans.dtd”>
<beans default-lazy-init=”true”>
<bean id=”jndiTemplate” 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>
</props>
</property>
</bean>
<bean id=”jmsQueueConnectionFactory”
class=”org.springframework.jndi.JndiObjectFactoryBean”>
<property name=”jndiTemplate”>
<ref bean=”jndiTemplate”/>
</property>
<property name=”jndiName”>
<value>jms/SendJMSFactory</value>
</property>
</bean>
<bean id=”sendDestination”
class=”org.springframework.jndi.JndiObjectFactoryBean”>
<property name=”jndiTemplate”>
<ref bean=”jndiTemplate”/>
</property>
<property name=”jndiName”>
<value>jms/SendJMSQueue</value>
</property>
</bean>
<bean id=”jmsTemplate”
class=”org.springframework.jms.core.JmsTemplate102″>
<property name=”connectionFactory”>
<ref bean=”jmsQueueConnectionFactory”/>
</property>
<property name=”defaultDestination”>
<ref bean=”sendDestination”/>
</property>
<property name=”receiveTimeout”>
<value>30000</value>
</property>
</bean>
<bean id=”jmsSender” class=”com.corp.service.JMSSender”>
<property name=”jmsTemplate”>
<ref bean=”jmsTemplate”/>
</property>
</bean>
</beans>
index.jsp
调用JMSSender发送消息
<%@ page language=”java” contentType=”text/html; charset=ISO-8859-1″
pageEncoding=”ISO-8859-1″%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
<%
org.springframework.beans.factory.BeanFactory beanFactory = (org.springframework.beans.factory.BeanFactory)
pageContext.getServletContext().
getAttribute(org.springframework.web.context.
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
com.corp.service.JMSSender jmsSender = (com.loanapp.service.JMSSender)beanFactory.getBean(“jmsSender”);
jmsSender.sendMessage(“Helloworld”);
%>
</body>
</html>
转载于http://www.ziki.cn/blog/archives/1182354149.html