如果你用weblogic,那么你会简单好多activeMQ 好像也不错。

解决方案 »

  1.   

    jboss jms
    http://blog.163.com/yxg820627@126/blog/static/18396013200703010327997/
      

  2.   

    对的,用weblogic 服务器配置一下,在用个IDE进行开发,很简单的
      

  3.   

    正式场合用weblogic,我测试的时候自己机器也安装weblogic吗
      

  4.   

    用weblogic的控制台配,主要配置哪几项
    那位帮忙简单提示下
      

  5.   

    在线文档很全:
    http://edocs.bea.com.cn/wls/docs100/messaging.html
      

  6.   

    1.启动数据库 2.启动weblogic 3.启动浏览器,在地址栏输入http://localhost:7001/console。在登录 界面输入用户名和密码进入管理界面,weblogic需要锁配置库。点击“Lock & Edit” 4. 配置JMS服务的步骤为: 4.1 配置连接工厂(Connection Factories) 4.2 配置消息存储(Message Stores) 4.3 配置JMS服务器(JMS Servers) 4.4 配置消息目的地(Destinations) 4.1 配置连接工厂(Connection Factories) JMS中连接工厂分QueueConnectionFactory和TopicConnectionFactory两种,Weblogic不区分这两种类型。但我们最好还是配置两种工厂类型。 a.配置QueueConnectionFactry在浏览器的左边树状菜单中选择: Services->Messaging->JMS Modules点击创建一个新的Jms Module,并输入一下信息 Name:SystemModule next->Target: AdminServer 可以以后加入资源 finish 展开上述模块,创建一个新的Resource Type: Connection Factory next-> 点击create new subDeployment SubDeployment Name: JMS Subdeployment 点击:ok Target:AdminServer finish完成 Name: JMS QueueConnection Factory JNDI Name: jms/QueueConnectionFactory 点击底部按钮Create,选择: Targets: myserver 点击Next进入下一步finish结束工厂配置 b.配置TopicConnectionFactry在浏览器的左边树状菜单中选择: Services->JMS Modules 点击创建一个新的Jms Module,并输入一下信息 Name:SystemModule next-> Target: AdminServer 可以以后加入资源 finish 展开上述模块,创建一个新的Resource Type: Connection Factory next-> 点击create new subDeployment SubDeploymenet Name: JMS Subdeploymenet 点击:ok Target:AdminServer finish完成 Name: JMS TopicConnection Factory JNDI Name: jms/TopicConnectionFactory 点击底部按钮Create,选择: Targets: myserver 点击Next进入下一步finish结束工厂配置 
    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完成配置 
      

  7.   

    在JBOSS+EJB3下实现相当简单
    下面的代码:从客户端发送一个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);
    }
    }