您的位置:首页 > 其它

ejb glassfish messageDrivenBean

2015-04-22 17:26 190 查看
coder before you have to set JMS Resources in glassfish.

进入glassfish管理界面 在 jms Resources 中 创建 ConnectionFactories 和 DestinationResources

ConnectionFactories 创建 连接工厂. JNDI Name 必填。resourceType 选择你需要连接的方式。

DestinationResources 新的message queue,或者message topic.

JNDI Name 必填, destinationName 必填,注意下面英文介绍。 resourceType 选择你需要的类型

Preparation work is done.

Create MessageDrivenBean

创建MessageBean ,输入MessageBean名称,

需要注意 在下面选择服务器目标,刚才在glassfish里面创建的 DestinationResources

下一步——>完成。

根据框架生成好所有的代码直接定位到 onMessage 方法

可以如下获取消息的具体内容,进行处理。

@Override
public void onMessage(Message message) {
try {
//message  有多种消息类型 ObjectMessage 等。
if (message instanceof TextMessage) {
TextMessage tMessage = (TextMessage) message;
System.out.print(tMessage.getText());
}
} catch (JMSException ex) {
Logger.getLogger(testMessageBean.class.getName()).log(Level.SEVERE, null, ex);
}
}


SendMessageClient

使用servlet 进行测试。创建一个servlet。

在 servlet 代码中右击 ——>插入代码——>发送JMS消息

自动生成代码段。本人使用netBeans 生成代码段

@Resource(mappedName = "jms/test")
private Queue test;
@Inject
@JMSConnectionFactory("jms/queue")
private JMSContext context;
private void sendJMSMessageToTest(String messageData) {
context.createProducer().send(test, messageData);
}
以上代码在调试运行是发送错误所以自己重新修改,如下代码:调试运行。可以很好的工作。

@Resource(mappedName = "jms/test")
private Queue test;
@Resource(mappedName = "jms/queue")
private ConnectionFactory connectionFactory;
@Inject
@JMSConnectionFactory("jms/queue")
private JMSContext context;
private void sendJMSMessageToTest(String messageData) {
Connection connection =null;
Session session = null;

try {
connection=connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer messageproducer = session.createProducer(test);
messageproducer.send(session.createTextMessage(messageData));
messageproducer.close();
} catch (JMSException ex) {
Logger.getLogger(testSendMessage.class.getName()).log(Level.SEVERE, null, ex);
}

//context.createProducer().send(test, messageData);
}


服务器 glassfish4.1

IDE NetBeans

有任何更好的请留言,互相学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: