hellolistener.java

来自「《J2EE企业级应用开发》一书的配套源代码」· Java 代码 · 共 61 行

JAVA
61
字号
package com.hellking.study.ejb;
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.ejb.EJBException;
import javax.ejb.CreateException;

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

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


public class HelloListener implements MessageDrivenBean,MessageListener
{
	private HelloWorkerHome workerHome=null;
	private MessageDrivenContext ctx=null;
	
	public HelloListener(){}
	
	public void setMessageDrivenContext(MessageDrivenContext ctx)throws EJBException
	{
		this.ctx=ctx;
	}
	public void ejbCreate()throws CreateException
	{
		try
		{
			Context init=new InitialContext();
			workerHome=(HelloWorkerHome)init.lookup("java:comp/env/ejb/Worker");
		}
		catch(Exception ex)
		{
			throw new CreateException("could not get worker: "+ex);
		}
	}
	public void ejbRemove(){
		ctx=null;
	}
	
	public void onMessage(Message message)
	{
		System.out.println("HelloListen got message "+message.toString());
		try
		{
			HelloWorker worker=workerHome.create();
			
			if(message instanceof TextMessage)
			{
				TextMessage m=(TextMessage)message;
				worker.doWork(m.getText());
			}
		}
		catch(Exception ex)
		{
			throw new EJBException("cloud not worker"+ex);
		}
	}
}
			

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?