Menu

17 Mart 2013 Pazar

Weblogic JMS uygulamasi

Merhaba, bu yazimda weblogic uzerinde bir Java Message Service (JMS) uygulamasini nasil yapabiliriz, ilk bastan en sona ekran goruntuleri ile birlikte paylasacagim. Bu uygulamayi yaparken 30`un uzerinde ekran goruntusu ortaya :) cikti. Faydali olmasi dilegiyle.

1. Weblogic Admin Console`u actikdan sonra
 Summary of Deployments >Summary of Services: JMS >Summary of JMS Servers altinda

2. DenemJMS adinda bir JMS Server olusturuyoruz.

3. Olusturdugumuz JMS Server`i bir managed server`a atiyoruz. (Clusterada atabilirsiniz)

4. asagidakileri uyguluyoruz.

5. JMS modules ekliyoruz.

6. New diyerek ekliyoruz



7. Managed Server`imizi seciyoruz

8. Finish diyerek bitirelim

9. Herseyin basarili oldugu goruluyor. ve herhangi bir restarta ihtiyac yoktur.

10. dosya ismini ne verdigi gorebiliyoruz.


11. SImdi bir Queue olusturuyoruz.


12. JNDI ismini verip next diyoruz.

13. Subdeployment secerek devam ediyoruz.

14. Ok

15. Finish

16.

17.

18. Simdi ise JMS server`a connection kurabilmek icin ConnectionFactory olusturuyoruz.

19. Asagidaki olusturarak devam ediyoruz.

20. Server`a secerek devam diyoruz.

21. ConnectionFactory ve Queue`muz gorunuyor.

22. Simdi ise Netbeans`de bir EJB module olusturup MDB bean`imiz olusturuyoruz.

23. Next

24. Next

25. Weblogic Server`a secerek devam ediyoruz.

26. Message-Driven Bean`imizi olusturuyoruz.

MDBExample.java
package tr.com.devinim.example;
import javax.ejb.ActivationConfigProperty;import javax.ejb.MessageDriven;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;
/** * * @author easlan */@MessageDriven(mappedName = "jms/myQueue", activationConfig = {    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")})public class MDBExample implements MessageListener {        public MDBExample() {    }        @Override    public void onMessage(Message message) {        try {            TextMessage tm = (TextMessage) message;            System.out.println("Geriye donen mesaj: " + tm.getText());        } catch (JMSException jex) {            System.out.println("Exception: " + jex);        }    }}



27. Simdi ise Olusturdugumuz MDB`mizi cagiracak JSF projemizi olusturuyoruz.

28. Next

29. Weblogic Server`imizi seciyoruz.

30. Java Server Faces Frameworkumuzu secip devam ediyoruz.
MessageYayinlayiciBean.java

package tr.com.devinim.jsf;
/** * * @author easlan */import javax.annotation.Resource;import javax.enterprise.context.RequestScoped;import javax.faces.application.FacesMessage;import javax.faces.context.FacesContext;import javax.inject.Named;import javax.jms.*;
@Named(value = "mesajBean")@RequestScopedpublic class MessageYayinlayiciBean {
    @Resource(mappedName = "jms/myQueue")    private Queue myQueue;    @Resource(mappedName = "jms/myQueueFactory")    private ConnectionFactory myQueueFactory;    private String mesaj;
    public MessageYayinlayiciBean() {    }
    public String getMesaj() {        return mesaj;    }
    public void setMesaj(String mesaj) {        this.mesaj = mesaj;    }
    public void mesajGonder() {        FacesContext facesContext = FacesContext.getCurrentInstance();        try {            sendJMSMessageToMyQueue(mesaj);            FacesMessage facesMessage = new FacesMessage("Mesaj gonder: " + mesaj);            facesMessage.setSeverity(FacesMessage.SEVERITY_INFO);            facesContext.addMessage(null, facesMessage);        } catch (JMSException jmse) {            FacesMessage facesMessage = new FacesMessage("Mesaj gonderilemedi: " + mesaj);            facesMessage.setSeverity(FacesMessage.SEVERITY_ERROR);            facesContext.addMessage(null, facesMessage);        }    }
    private Message createJMSMessageForjmsMyQueue(Session session, Object messageData) throws JMSException {        TextMessage tm = session.createTextMessage();        tm.setText(messageData.toString());        return tm;    }
    private void sendJMSMessageToMyQueue(Object messageData) throws JMSException {        Connection connection = null;        Session session = null;        try {            connection = myQueueFactory.createConnection();            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);            MessageProducer messageProducer = session.createProducer(myQueue);            messageProducer.send(createJMSMessageForjmsMyQueue(session, messageData));        } finally {            if (session != null) {                try {                    session.close();                } catch (JMSException e) {                    e.printStackTrace();                }            }            if (connection != null) {                connection.close();            }        }    }}

index.html




Ve son olarak. Once EJB`mizi (MDB) daha sonrada JSF uygulamamizi weblogic server`a deploy ederek bitirelim ve test edelim.



JSf uygulamamizda deniyoruz.

Asagida ise managed serverimizin logu

Umarim faydali bir makale olmustur.

3 yorum: