By GokiSoft.com| 19:30 04/11/2020|
Java Web + EJB (EAD)

[Share Code] Chia sẻ TMS - Lập trình EJB - Phần 1



/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package receiver;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSDestinationDefinition;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

/**
 *
 * @author Admin
 */
@JMSDestinationDefinition(name = "java:app/myQueue", interfaceName = "javax.jms.Queue", resourceAdapter = "jmsra", destinationName = "myQueue")
@MessageDriven(activationConfig = {
    @ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "java:app/myQueue")
    ,
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class ReceiverMessageBean implements MessageListener {
    
    public ReceiverMessageBean() {
    }
    
    @Override
    public void onMessage(Message message) {
        System.out.println("Receiver...");
        if(message instanceof TextMessage) {
            String msg;
            try {
                msg = ((TextMessage) message).getText();
                System.out.println("msg > " + msg);
            } catch (JMSException ex) {
                Logger.getLogger(ReceiverMessageBean.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    
}



/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package aptech;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

/**
 *
 * @author Admin
 */
public class Main {

    @Resource(mappedName = "java:app/myQueue")
    private static Queue java_appMyQueue;

    @Resource(mappedName = "jms/__defaultConnectionFactory")
    private static ConnectionFactory java_appMyQueueFactory;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            // TODO code application logic here
            sendJMSMessageToMyQueue("HELLO");
        } catch (JMSException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static Message createJMSMessageForjava_appMyQueue(Session session, Object messageData) throws JMSException {
        // TODO create and populate message to send
        TextMessage tm = session.createTextMessage();
        tm.setText(messageData.toString());
        return tm;
    }

    private static void sendJMSMessageToMyQueue(Object messageData) throws JMSException {
        Connection connection = null;
        Session session = null;
        try {
            connection = java_appMyQueueFactory.createConnection();
            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            MessageProducer messageProducer = session.createProducer(java_appMyQueue);
            messageProducer.send(createJMSMessageForjava_appMyQueue(session, messageData));
        } finally {
            if (session != null) {
                try {
                    session.close();
                } catch (JMSException e) {
                }
            }
            if (connection != null) {
                connection.close();
            }
        }
    }
    
}





Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)