`
youngmaster
  • 浏览: 58260 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

EJB:事件驱动 bean ---Topics

阅读更多

创建一个工具类:

//ContextFactory.java

package com.youngmaster.jms.utils;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 1:55:42 AM
 */
public class ContextFactory {

	@SuppressWarnings("unchecked")
	public static Context getContext() throws Exception {
		Hashtable props = new Hashtable();

		props.put(Context.INITIAL_CONTEXT_FACTORY,
				"org.jnp.interfaces.NamingContextFactory");

		props.put(Context.PROVIDER_URL, "localhost:1099");

		props.put("java.naming.rmi.security.manager", "yes");

		props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");

		@SuppressWarnings("unused")
		Context context = new InitialContext(props);
		return context;
	}

}

 

发送端:

//Publisher.java

package com.youngmaster.jms.publisher;

import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
import javax.naming.Context;

import com.youngmaster.jms.utils.ContextFactory;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 1:21:44 AM
 */
public class Publisher {

	public static void main(String[] args) throws Exception {

		Context context=ContextFactory.getContext();
		TopicConnectionFactory factory = (TopicConnectionFactory) context
		.lookup("ConnectionFactory");
		TopicConnection connection=factory.createTopicConnection();
		TopicSession session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);


		/**
		 * create topic
		 */
		Topic topic = (Topic) context.lookup("topic/testTopic");

		/**
		 * create topicPublisher
		 */
		@SuppressWarnings("unused")
		TopicPublisher topicPublisher = session.createPublisher(topic);

		/**
		 * create TextMessage
		 */
		TextMessage textmessage = session.createTextMessage();
		textmessage.setText("Hello,jms world");

		topicPublisher.send(topic, textmessage);

		session.close();
		connection.close();
	}

}

 

接收端:

//Subscriber.jva

package com.youngmaster.jms.scriber;

import javax.jms.Session;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.Context;

import com.youngmaster.jms.utils.ContextFactory;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 1:39:18 AM
 */
public class Subscriber {

	/**
	 * @param args
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws Exception {
		
		Context context=ContextFactory.getContext();
		TopicConnectionFactory factory = (TopicConnectionFactory) context
		.lookup("ConnectionFactory");
		TopicConnection connection=factory.createTopicConnection();
		TopicSession session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);

		/**
		 * create topic
		 */
		Topic topic = (Topic) context.lookup("topic/testTopic");

		/**
		 * create topicSubscriber
		 */
		TopicSubscriber topicSubscriber = session.createSubscriber(topic);

		topicSubscriber.setMessageListener(new MySubscriber());
		connection.start();
	}

}
 

创建一个监听器:

//MySubscriber.java

package com.youngmaster.jms.scriber;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 1:40:40 AM
 */
public class MySubscriber implements MessageListener {

	public void onMessage(Message arg0) {

		TextMessage message = (TextMessage) arg0;

		try {
			String text = message.getText();

			System.out.println("=====msg: - " + text);

		} catch (JMSException e) {
			e.printStackTrace();
		}

	}

}
 
分享到:
评论

相关推荐

    ejb3-entitybean-maven-archetype source code

    在这里,它将包含EJB 3相关的Maven插件和库,例如`maven-ejb-plugin`用于构建EJB模块,以及可能的JPA依赖如Hibernate或EclipseLink。 2. **src/main/java**: 这个目录包含了项目的源代码,特别是EJB实体Bean类。EJB...

    ejb2.0消息驱动bean的开发(JBOSS4.0.4.GA 环境)

    尽管没有提供具体的描述,但我们可以推断,这篇博客可能涵盖了以下内容:设置JBOSS服务器环境,配置JMS资源,创建并实现MDB接口,编写ejb-jar.xml和jboss.xml部署描述符,以及测试MDB的部署和运行。博主可能还分享了...

    ejb-3_0-fr-spec-ejbcore.pdf,ejb-3_0-fr-spec-persistence.pdf,ejb-3_0-fr-spec-simplified.pdf

    1. EJB Core (ejb-3_0-fr-spec-ejbcore.pdf): EJB Core涵盖了EJB的基础架构,包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。在EJB 3.0中,主要引入了注解驱动...

    EJB3规范---文档

    5. **ejb-3_0-pfd-spec-ejbcore.pdf**:这份文档详细介绍了EJB 3.0的核心概念,包括Bean的类型、生命周期、安全性、事务管理和并发控制等内容。 6. **ejb-3_0-pfd-spec-persistence.pdf**:这份文档主要关注EJB 3.0...

    EJB2和EJB3 消息驱动bean

    - 配置Xdoclet工具,用于自动生成`ejb-jar.xml`和`jboss.xml`文件,之后根据需求修改`jboss.xml`。 - 部署EJB至服务器,启动并运行发送方程序,在控制台将看到消息处理的输出。 #### 二、EJB3消息驱动Bean #####...

    EJB-api.rar

    EJB-api.rar 是一个包含EJB规范API的压缩包,它为开发人员提供了访问和使用EJB技术的接口和类。以下是关于EJB的重要知识点的详细说明: 1. **EJB概述**: - EJB是Java EE(Java Platform, Enterprise Edition)的...

    agent-ejb-3.0-beta-1-sources.jar

    标签:agent-ejb-3.0-beta-1-sources.jar,agent,ejb,3.0,beta,1,sources,jar包下载,依赖包

    agent-ejb-3.0-beta-1-javadoc.jar

    标签:agent-ejb-3.0-beta-1-javadoc.jar,agent,ejb,3.0,beta,1,javadoc,jar包下载,依赖包

    agent-car-ejb-3.0-beta-1-sources.jar

    标签:agent-car-ejb-3.0-beta-1-sources.jar,agent,car,ejb,3.0,beta,1,sources,jar包下载,依赖包

    resteasy-ejb:resteasy-use-ejb

    resteasy-ejb resteasy-use-ejb 如何将项目本地上传到github上的repository 1.create repository on github 2.进入项目目录,执行以下命令#git add。 #git commit -m "..." #git remote add origin :库名.git #git ...

    agent-ejb-3.0-beta-1.jar

    标签:agent-ejb-3.0-beta-1.jar,agent,ejb,3.0,beta,1,jar包下载,依赖包

    Apress.Begining EJB3 Java EE 7 Edition.2013

    第7章:整合会话Bean、实体Bean、消息驱动Bean以及Web服务 - **主要内容:** - 不同类型的EJB组件如何协同工作。 - 事务协调和数据一致性。 - 跨组件通信的最佳实践。 - 事务边界和异常处理。 - 整合过程中...

    EJB消息驱动bean Demo

    为了配置MDB,你需要在EJB容器(如WildFly、GlassFish或WebLogic)的部署描述符(ejb-jar.xml或META-INF/ejb-jar.xml)中声明bean,并指定它监听的JMS资源。同时,也需要在应用服务器的资源配置文件(如 GlassFish的...

    EJB中ejb-jar——xml文件说明.pdf

    ejb-jar文件的配置信息主要包括EJB组件的基本信息、图标信息、企业级Bean信息、会话Bean信息等。通过配置ejb-jar文件,开发者可以方便地描述EJB组件的配置信息,以便更好地开发企业级应用程序。

    JavaEE5学习笔记06-EJB之消息驱动Bean总结

    ### Java EE 5 学习笔记06:EJB之消息驱动Bean总结 #### EJB 消息驱动 Bean (Message Driven Bean, MDB) 在Java EE 5中,消息驱动Bean(MDB)是一种特殊的EJB组件,它主要用于处理异步消息。MDB能够接收并处理由...

    ejb3.0第11讲 --开发消息驱动bean

    4. **部署MDB**:将MDB类打包到EJB模块(.ear或.ejb-jar文件)中,并在部署描述符(如 ejb-jar.xml 或 META-INF/ejb-jar.xml)中声明它。有时,激活规范也可以在这里配置。 5. **使用JMS API**:在onMessage()方法...

    EJB3.0中文 版

    - 通过`@Name`注解或`ejb-jar.xml`修改JNDI名称。 - **拦截器**: - 通过`@Interceptor`注解定义拦截器类。 - 通过`@AroundInvoke`等注解定义拦截逻辑。 - **依赖注入**: - 通过`@Inject`注解实现自动装配。 -...

    ejb 消息驱动Bean例子

    - **ejb-jar.xml配置**:在ejb-jar.xml文件中,我们需要定义MDB的bean类、消息监听器接口以及关联的JMS资源。 - **weblogic-ejb-jar.xml或jboss-ejb3.xml**:对于特定应用服务器(如WebLogic或JBoss),可能还需要...

    ejb-api-3.0-sources

    ejb-api-3.0-sources ejb3.0资源文件,源代码文件

Global site tag (gtag.js) - Google Analytics