超级讨厌ejb中。。。。。。。。。。。。。。。。。。。
================================================
要配置一个 Message Driven Bean 在不同的应用服务器中参数是不一样的。
目前只测试通过了jboss.
Message Driven Bean 包含2部分一个配置文件和一个java类。(书上说不需要配置文件也可以,我就没成功过,总报找不到,郁闷的很。)
1.java类。
/*
* 文件名: MessageBean.java
*
* 创建日期: 2009-2-26
*
* Copyright(C) 2009, by Ryoma.
*
* 原始作者: <a href="mailto:lemom8000@gmail.com">Ryoma</a>
*
*/
package com.mdb.ejb.impl;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
/**
*
*
* @author <a href="mailto:lemom8000@gmail.com">Ryoma</a>
*
* @version $Revision$
*
* @since 2009-2-26
*/
@MessageDriven(activationConfig =
{
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/myQueue")
})
public class MessageBean implements MessageListener {
/*
* (non-Javadoc)
*
* @see javax.jms.MessageListener#onMessage(javax.jms.Message)
*/
public void onMessage(Message message) {
System.out.println("MessageBean:" + message.getClass());
System.out.println("MessageBean:" + message);
}
}
红色部分在不同应用中不一样。MessageListener 是必须实现的。黄色的myQueue需要在配置文件中配置。
2.配置文件。xxxxx-service.xml 放在deploy下或者他下面的目录下。
<mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=myQueue">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
<mbean code="org.jboss.jms.server.destination.QueueService"
name="jboss.messaging.destination:service=Queue,name=PrivateDLQ"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>
两种方式都可以,第一种是在网上找到的,第二种是在服务器中的example-destinations-service.xml中找到的。第二种在文档中有许多写法,具体的属性不知道干什么用的没找到文档,有找到的给我发一份lemom8000@gmail.com
===========================================================
以下调用方法:
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="javax.naming.*, java.text.*, javax.jms.*, java.util.Properties"%>
<%
QueueConnection cnn = null;
QueueSender sender = null;
QueueSession sess = null;
Queue queue = null;
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
cnn = factory.createQueueConnection();
sess = cnn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
queue = (Queue) ctx.lookup("queue/myQueue");
} catch (Exception e) {
out.println(e.getMessage());
}
try {
TextMessage msg = sess.createTextMessage("这是我的第一个消息驱动Bean");
sender = sess.createSender(queue);
sender.send(msg);
sess.close ();
out.println("消息已经发送出去了,你可以到JBoss控制台查看Bean的输出");
} catch (Exception e) {
out.println(e.getMessage());
}
%>
网上找的例子,测试通过了。
=======================================================
再次赶紧EJB不好用。。。。。。。。。。。。
分享到:
相关推荐
import javax.ejb.MessageDriven; @MessageDriven(activationConfig={ @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(property...
5. **消息驱动Bean(Message-Driven Beans)**:处理Java Message Service (JMS) 消息,实现异步处理。 【JBoss EJB 3.0实现】 JBoss作为流行的开源应用服务器,对EJB 3.0提供了全面的支持。以下是一些关键特性: ...
在这个文件中,你可以定义EJB组件的基本元数据,如bean的类型(例如,Stateless Session Bean、Stateful Session Bean、Message Driven Bean)、接口、实现类、部署名称以及安全角色等。例如,你可以声明一个无状态...
在实验中,你可能还会学习到EJB的接口定义、实体Bean(Entity Bean,用于持久化数据)、消息驱动Bean(Message-Driven Bean,用于处理消息队列)以及EJB的生命周期管理。此外,理解EJB容器如何处理事务、安全性、...
- 使用`@MessageDriven`注解标记该类,指定JMS目的地类型(队列或主题),以及其他配置属性。 - 在ejb-jar.xml或元数据注解中配置MDB,如JNDI名称、消息驱动适配器等。 6. **源代码解析**: 压缩包中的源代码...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
消息驱动Bean(Message-Driven Bean, MDB)是EJB的一个特殊类型,它充当了应用服务器和JMS(Java Message Service)之间的桥梁,用于处理异步通信。在本教程中,我们将深入探讨如何在JBOSS 4.0.4.GA环境下开发和部署...
- 编写EJB:使用注解如`@Stateless`、`@Stateful`、`@Singleton`、`@MessageDriven`来定义不同类型的Bean。 - 编写接口和实现:EJB3允许Bean通过接口进行交互,接口定义服务,实现提供具体功能。 - 配置pom.xml或...
书中可能涵盖了诸如数据库连接池、消息驱动bean(Message Driven Bean, MDB)、定时器服务(Timer Service)、会话bean的生命周期管理等多个主题,帮助读者全面掌握EJB3.0的实用技能。 总之,《JBoss EJB3.0实例...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
- 包括如何使用Session Bean和Message Driven Bean等。 - **使用Message Driven Bean**: - 继续探讨如何利用Message Driven Bean提高Web应用的性能和可扩展性。 综上所述,本教程不仅提供了EJB3.0的核心技术...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...
1. 注解驱动:EJB 3.x允许开发者使用注解(如`@Stateless`,`@Stateful`,`@Singleton`,`@MessageDriven`)来声明bean的角色,而无需XML配置文件。 2. 自动依赖注入:通过`@EJB`注解,可以实现bean之间的自动依赖...
在这个进阶案例中,我们将深入探讨ejb3的三大主要组件:Session Bean、实体Bean以及MessageDriven Bean,并在JBoss 5应用服务器环境下进行实战演练。 **1. Session Bean** Session Bean是ejb3中的服务组件,用于...
EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,以及如何搭建开发环境;第二部分详细讲解了JSF RI、EJB 3的Session Bean等Java EE知识...