⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmessenger.java

📁 精通Jboss——Ejb和Web Services开发精解的随书源代码
💻 JAVA
字号:
/**
 * XMessengerBean.java Created on 2003-12-23
 *
 */
package com.liuyang.xmessenger.sessionbean;

import java.rmi.RemoteException;
import java.util.Hashtable;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
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 javax.naming.InitialContext;

/**
 * @author liuyang
 * 
 * @ejb.bean	description="XMessengerBean"
 *	          	display-name="XMessengerBean"
 *  	        jndi-name="XMessengerBeanHomeRemote"
 *      	    name="XMessengerBean"
 *          	type="Stateless"
 *	    	    view-type="remote"
 *  			transaction-type = "Container"
 * 
 * 
 */
public class XMessenger implements SessionBean {

	/**
	 * @param msg
	 * @ejb.interface-method view-type = "remote"
	 */
	public void sendMsg(String msg){
		TopicSession   topicSession = null;	
		try {
			Hashtable env = new Hashtable();
			env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
			env.put(Context.PROVIDER_URL,"localhost");
			Context context = new InitialContext(env);	
			topic = (Topic)context.lookup(TOPIC_JNDI);
			TopicConnectionFactory factory = (TopicConnectionFactory)context.lookup(CONNECTION_JNDI);   
			topicConnection = factory.createTopicConnection();		
					
			TopicPublisher topicPublisher = null;
			TextMessage    message = null;
			topicSession = topicConnection.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
			topicPublisher = topicSession.createPublisher(topic);
			message = topicSession.createTextMessage();
			message.setText(msg);
			topicPublisher.publish(message);
			System.out.println("Publishing message " + msg);
		} catch (Exception ex) {
			ex.printStackTrace();
			//ctx.setRollbackOnly();
			throw new EJBException(ex.toString());
		} finally {
			if (topicSession != null) {
				try {
					topicSession.close();
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			if (topicConnection != null) {
				try {
					topicConnection.close();
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}			
		}	
	}
	 private static final String CONNECTION_JNDI = "ConnectionFactory";
	 private static final String TOPIC_JNDI = "topic/chatroom";
	 private Topic topic = null;
	 private TopicConnection topicConnection = null;	
	/**
	 * @ejb.create-method 
	 */
	public void ejbCreate () {
		/*try {

		} catch (Exception ex) {
			ex.printStackTrace();
			throw new EJBException(ex.toString());
		}	*/	
	}
	public void ejbActivate() throws EJBException, RemoteException {

	}

	public void ejbPassivate() throws EJBException, RemoteException {

	}

	public void ejbRemove() throws EJBException, RemoteException {
		/*if(topicConnection != null) {
			try {
				topicConnection.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}*/
	}
	private SessionContext ctx;
	public void setSessionContext(SessionContext sc)
		throws EJBException, RemoteException {
		ctx = sc;
	}

}

⌨️ 快捷键说明

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