WEB开发网
开发学院软件开发Java Apache Geronimo JNDI 命名和 Java 资源连接池,第... 阅读

Apache Geronimo JNDI 命名和 Java 资源连接池,第 2 部分: 使用 Java Message Service

 2010-04-23 00:00:00 来源:WEB开发网   
核心提示: 值得关注的两个方法是 ejbCreate 和 onMessage,ejbCreate 方法用于执行 InterestGroupEntityBean 的 JNDI 查找,Apache Geronimo JNDI 命名和 Java 资源连接池,第 2 部分: 使用 Java Message Serv

值得关注的两个方法是 ejbCreate 和 onMessage。ejbCreate 方法用于执行 InterestGroupEntityBean 的 JNDI 查找。这段查找代码类似于会话或实体 bean 中的代码。只要在 CustomerServiceTopic 中发现消息,就将调用 onMessage 方法。这种方式是组件访问 MDB 的惟一方法,因为这些 bean 都不是被直接调用的。清单 8 显示了如何在 ProcessCustomerSessionBean 会话 bean 内查找 JMS 资源。

清单 8. ProcessCustomerSessionBean.java 的 doJNDILookups 方法

        private void doJNDILookups() 
   throws NamingException, ClassCastException 
  { 
   Object objref = null; 
   InitialContext initial = null; 
 
   bundle = ResourceBundle.getBundle("customer", Locale.getDefault(), 
ProcessCustomerSessionBean.class.getClassLoader()); 
   JNDI_CUSTOMER_EJB = bundle.getString("jndi.customer.ejb"); 
   JNDI_JMS_CONNECTOR = bundle.getString("jndi.jms.connector"); 
   JNDI_JMS_TOPIC = bundle.getString("jndi.jms.topic"); 
 
   initial = new InitialContext(); 
   objref = initial.lookup(JNDI_CUSTOMER_EJB); 
   customerHome = (CustomerHome)PortableRemoteObject.narrow(objref, 
CustomerHome.class); 
   System.out.println("looking up: " + JNDI_CUSTOMER_EJB); 
 
   objref = initial.lookup(JNDI_JMS_TOPIC); 
   receivingTopic = (Topic)PortableRemoteObject.narrow(objref, Topic.class); 
   System.out.println("looking up: " + JNDI_JMS_TOPIC); 
 
   objref = initial.lookup(JNDI_JMS_CONNECTOR); 
   factory = (ConnectionFactory)PortableRemoteObject.narrow(objref, 
ConnectionFactory.class); 
   System.out.println("looking up: " + JNDI_JMS_CONNECTOR); 
  } // end doJNDILookups 

上一页  5 6 7 8 9 10 

Tags:Apache Geronimo JNDI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接