如果你用weblogic,那么你会简单好多activeMQ 好像也不错。
解决方案 »
- 求教:你们有遇到过在本地样式没问题,上传到服务器之后样式加载不出来的问题吗?
- 解析xls文件,解析的总条数问题------急!急
- struts2写了一个自定义标签(分享给大家),不会的进来参考,会的进来指点。
- log4j 如何输出信息到不同的文件
- 问个题外话,关于。。。。。。。。
- HQL中用构造函数取时间自动,取不出来,请大家帮忙看看
- 关于web.xml配置的问题
- 谁知道如何在一个页面上探出对话框进行身份验证?
- 100分求java文档管理软件
- 在jsp文件中用pageEncoding 设置了文件编码,当jsp引擎转译该jsp文件的时候,它是如何知道该文件的编码呢
- 那个有下载的源代码啊
- 刚刚自学了SSH,谁推荐个小项目给我做下
http://blog.163.com/yxg820627@126/blog/static/18396013200703010327997/
那位帮忙简单提示下
http://edocs.bea.com.cn/wls/docs100/messaging.html
4.2 配置消息存储(Message Stores) weblogic中消息存储方式可分两种方式,一是把消息保存到文件系统中,二是把消息保存到数据库中。以下介绍两种存储方式的配置。 a.配置文件存储方式:
在浏览器的左边树状菜单中选择: Services->Persistent Stores 在浏览器右边点击链接New->Create FileStore, 输入以下信息: Name: JMS File Store Target: AdminServer Directory: c:/jmsstore (确保你对此目录有读写权限) 点击底部按钮finish完成操作 b.配置数据库存储方式: 前提:你已经配置过JDBC的连接池(Connection pool),且此连接池处于 运行状态。 在浏览器的左边树状菜单中选择: Services->Persistent Stores 在浏览器右边点击链接New->Create JDBCStore
输入以下信息: Name: JMS JDBC Store Target: AdminServer Data Source: <选择配置好的数据源> Prefix Name: jms(防止表名冲突,你可输入不同的前缀) 点击底部按钮finish完成操作
4.3 配置JMS服务器(JMS Servers) 每个JMS Server只能管理一个消息存储介质,针对以上配置,我们配置两个JMS Server分别管理文件方式和数据库方式的存储方式。 a.配置文件存储JMS Server在浏览器的左边树状菜单中选择: Services->Messaging->JMS Servers 在浏览器右边点击New,输入以下信息: Name: JMS File Server Persistent Store: JMS File Store 点击底部按钮Next进入下一个页面,选择:Target: myserver 点击finish完成操作。 b.配置数据库存储JMS Server在浏览器的左边树状菜单中选择: Services->Messaging->JMS Servers 在浏览器右边点击New, 输入以下信息: Name: JMS JDBC Server Persistent Store: JMS JDBC Store 点击底部按钮next进入下一个页面,选择: Target: myserver 点击finish完成操作。
4.4 配置消息目的地(Destinations) 消息目的地是被JMS Server管理的,消息如何存储对配置消息目的地是透明的。因此仅以配置JMS File Server管理的目的地为例。目的地分Queue和Topic两种,以下分别配置。 a.配置Queue 在浏览器的左边树状菜单中选择: Services->Messaging->JMS Modules 在浏览器右边选择需要配置队列的JMS模块 点击底部new按钮 Type:Queue 点击底部Next按钮 Name: JMS File Queue JNDI Name;jms/fileQueue 点击底部按钮Next Subdeploymenet: JMS Subdeploymenet Target: AdminServer finish完成配置
b.配置Topic 在浏览器的左边树状菜单中选择:
Services->Messaging->JMS Modules 在浏览器右边选择需要配置队列的JMS模块 点击底部new按钮 Type:Topic 点击底部Next按钮 Name: JMS File Topic JNDI Name: jms/fileTopic 点击底部按钮Next Subdeploymenet: JMS Subdeploymenet Target: AdminServer 点击底部按钮Next->finish完成配置
下面的代码:从客户端发送一个Content对象到消息服务器,消息驱动BEAN接收到这个实体消息后把他插入数据库,EJB3的持久化你可以不用看
就看消息如何发送和接收的。很简单,其他什么都不用配置,Anotation帮你解决了一切
消息驱动BEAN
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination",propertyValue="queue/content")})
public class ContentReciveBean implements MessageListener {
@PersistenceContext(unitName="EJBStudy") protected EntityManager em;
@Override
public void onMessage(Message msg) {
// TODO Auto-generated method stub
try{
if(msg instanceof ObjectMessage) {
ObjectMessage objectMessage = (ObjectMessage)msg;
Content content = (Content)objectMessage.getObject();
em.persist(content);
}
}catch(Exception e) {
e.printStackTrace();
} }}
客户端import java.util.Properties;import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.naming.Context;
public class MessageClient {
public static void main(String[] args) throws Exception {
Context ctx = getInitialContext();
QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("QueueConnectionFactory");
QueueConnection con = factory.createQueueConnection();
QueueSession session = con.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
Destination destination = (Queue)ctx.lookup("queue/content");
MessageProducer producer = session.createProducer(destination);
Content content = new Content();
content.setFileName("First message bean!");
content.setFileComment("First message bean!");
producer.send(session.createObjectMessage(content));
session.close();
con.close();
ctx.close();
}
public static Context getInitialContext( )throws javax.naming.NamingException { Properties p = new Properties( );
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES,
" org.jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://localhost:1099");
return new javax.naming.InitialContext(p);
}
}