消息驱动bean

原创 2005年04月27日 19:36:00

刚刚在JBOSS上面搞顶JMS MDB,有什么问题以后可以切磋,过几天发个贴上来。总结下经验。

消息驱动bean的HELLOWORLD

client
public class Aa {
    private static Context context;
    private boolean transacted = false;
    private int acknowledgementMode = javax.jms.Session.AUTO_ACKNOWLEDGE;
    private QueueConnectionFactory queueConnectionFactory;
    private QueueConnection queueConnection;
    private QueueSession queueSession;
    private QueueSender queueSender;
    private QueueReceiver queueReceiver;
    private Queue queue;
    private String queueConnectionFactoryName = "java:comp/env/jms/QCF";
    private String sendQueueName = "queue/test";
    private String recvQueueName = "queue/test";
    private MapMessage message=null;
    

    private Context getInitialContext() throws NamingException {
        Hashtable environment = new Hashtable();

        environment.put(Context.INITIAL_CONTEXT_FACTORY,
                        "org.jnp.interfaces.NamingContextFactory");
        environment.put(Context.URL_PKG_PREFIXES,
                        "org.jboss.naming:org.jnp.interfaces");
        environment.put(Context.PROVIDER_URL, "jnp://localhost:1099");

        return new InitialContext(environment);
    }

    private Context getContext() throws Exception {
        if (context == null) {
            try {
                context = getInitialContext();
            } catch (Exception ex) {
                ex.printStackTrace();
                throw ex;
            }
        }
        return context;
    }


    public Aa()
    {
       try
       {
          
          context=getContext();
          queueConnectionFactory=(QueueConnectionFactory)context.lookup("ConnectionFactory");
       
          queueConnection=queueConnectionFactory.createQueueConnection();
          queue=(Queue)context.lookup("queue/test");
          
          queueSession=queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
          queueConnection.start();
          
          queueSender=queueSession.createSender(queue);
          
          TextMessage mes=queueSession.createTextMessage("abcabcabc");
          queueSender.send(mes);

       }
       catch(Exception e)
       {
          throw new EJBException(e.getMessage());
       }
    }

    
    public static void main(String [] args)
    {
       Aa a=new Aa();
       
    }
}

MDB

public class processOrderBean implements MessageDrivenBean, MessageListener {
    MessageDrivenContext messageDrivenContext;
    private QueueConnection conn;
    private QueueSession session;
    public void ejbCreate() {
    }

    public void ejbRemove() {
    }

    public void onMessage(Message message) {
        System.out.println("hello world");
    }

    public void setMessageDrivenContext(MessageDrivenContext
                                        messageDrivenContext) {
        this.messageDrivenContext = messageDrivenContext;
    }
}

JBOSS.XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.2//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
<jboss>
  <enterprise-beans>
    <message-driven>
      <ejb-name>processOrder</ejb-name>
      <destination-jndi-name>queue/test</destination-jndi-name>
      <resource-ref>
                <res-ref-name>jms/QCF</res-ref-name>
                <jndi-name>ConnectionFactory</jndi-name>
      </resource-ref>
    </message-driven>
  </enterprise-beans>
</jboss>

EJB-JAR.XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
  <display-name>danke</display-name>
  <enterprise-beans>
    <message-driven>
      <ejb-name>processOrder</ejb-name>
      <ejb-class>untitled9.processOrderBean</ejb-class>
      <transaction-type>Container</transaction-type>
      <message-driven-destination>
        <destination-type>javax.jms.Queue</destination-type>
      </message-driven-destination>
      <resource-ref>
        <res-ref-name>jms/QCF</res-ref-name>
        <res-type>javax.jms.QueueConnectionFactory</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>
    </message-driven>
  </enterprise-beans>
  <assembly-descriptor>
    <container-transaction>
      <method>
        <ejb-name>processOrder</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
  </assembly-descriptor>
</ejb-jar>

消息驱动Bean的Wblogic配置( 图解)

  • 2008年12月01日 13:45
  • 1.97MB
  • 下载

消息驱动bean(MDB)实例

到目前为止前面介绍的有关JavaEE的东西都是同步的,也就是说调用者调用某个方法,那么这个方法必须立即执行并返回执行结果。用官方一些的语言来说就是“客户端通过业务接口调用一个方法,在将控制权返回给客户...

ejb 消息驱动Bean例子

  • 2010年05月18日 10:52
  • 18KB
  • 下载

EJB2和EJB3 消息驱动bean

  • 2008年07月03日 18:23
  • 604KB
  • 下载

菜鸟调错(二)——EJB3.0部署消息驱动Bean抛javax.naming.NameNotFoundException异常

在部署EJB的消息驱动Bean时遇到了如下的错误: [plain] view plaincopy ERROR [org.jboss.resource...

EJB消息驱动bean Demo

  • 2016年06月10日 10:33
  • 30KB
  • 下载

EJB消息驱动bean

Java Message Service 消息传递系统的中心就是消息。一条 Message 分为三个组成部分: 头(header)是个标准字段集,客户机和供应商都用它来标识和路由消息。 JMSM...

消息驱动bean学习

  • 2010年01月03日 19:59
  • 758KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:消息驱动bean
举报原因:
原因补充:

(最多只允许输入30个字)