`

jboss 7.1.1 消息驱动bean配置

 
阅读更多
web模块
/WEB-INF/hornetq-jms.xml
<?xml version="1.0" encoding="UTF-8"?>
<messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0">
    <hornetq-server>
        <jms-destinations>
            <jms-queue name="HelloWorldMDBQueue">
                <entry name="/queue/HelloWorldMDBQueue"/>
            </jms-queue>
        </jms-destinations>
    </hornetq-server>
</messaging-deployment>

/src/ejb/servlet/TextServlet.java
package ejb.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnectionFactory;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/TextServlet")
public class TextServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Resource(mappedName = "java:/ConnectionFactory")
	private QueueConnectionFactory queueConnectionFactory;

	@Resource(mappedName = "java:/queue/HelloWorldMDBQueue")
	private Queue queue;

	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		try {
			Connection connection;
			try {
				connection = queueConnectionFactory.createConnection();
				Session session = connection.createSession(false,
						Session.AUTO_ACKNOWLEDGE);
				MessageProducer messageProducer = (MessageProducer) session
						.createProducer(queue);
				TextMessage textMessage = session.createTextMessage();
				// Part number – 12345
				// Weight – 12.5f
				// Quantity - 50
				String message = "12345 12.5 50";
				textMessage.setText(message);
				messageProducer.send(textMessage);
				System.out.println("---> Text Message Sent");
			} catch (JMSException ex) {
				Logger.getLogger(TextServlet.class.getName()).log(Level.SEVERE,
						null, ex);
			}
			out.println("<html>");
			out.println("<head>");
			out.println("<title>Servlet TextServlet</title>");
			out.println("</head>");
			out.println("<body>");
			out.println("<h1>Servlet TextServlet at "
					+ request.getContextPath() + "</h1>");
			out.println("</body>");
			out.println("</html>");
		} finally {
			out.close();
		}
	}
}


ejb 模块
/ejbModule/ejb/bean/TextMDB.java
package ejb.bean;

import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

@MessageDriven(name = "HelloWorldMDB", activationConfig = {
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/HelloWorldMDBQueue"),
		@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
public class TextMDB implements MessageListener {

	private final static Logger LOGGER = Logger.getLogger(TextMDB.class
			.toString());

	/**
	 * @see MessageListener#onMessage(Message)
	 */
	public void onMessage(Message message) {
		TextMessage msg = null;
		try {
			if (message instanceof TextMessage) {
				msg = (TextMessage) message;
				Scanner scanner = new Scanner(msg.getText());
				System.out.println("---> Part Number: " + scanner.nextInt());
				System.out.println("---> Weight: " + scanner.nextFloat());
				System.out.println("---> Quantity: " + scanner.nextInt());
				System.out.println("---> TextMessage Received");
			}
		} catch (JMSException ex) {
			LOGGER.log(Level.SEVERE, null, ex);
		}
	}
}


使用 standalone-full.xml 启动jboss7 才有jms支持
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics