Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package jms;
- import javax.ejb.ActivationConfigProperty;
- import javax.ejb.EJB;
- import javax.ejb.MessageDriven;
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.MessageListener;
- import javax.jms.TextMessage;
- import javax.websocket.Session;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import org.jboss.resteasy.client.jaxrs.ResteasyClient;
- import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
- import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
- import chat.database.ChatAppDB;
- import model.Host;
- import model.User;
- import user.database.UserAppDB;
- /*
- * Prvo probati sa queue/mojQueue2. Posto u tom slucaju ovaj MDB
- * ne "hvata" poruke iz JMSQueue aplikacije, queue se prazni preko
- * nje. Ako i ovaj bean prima iz istog reda (mojQueue), onda
- * sama aplikacija nece ni stici da dobije poruku (MDB) ce je prvi
- * "pojesti"
- *
- * Osim toga, probati i da JMSQueue ostane upaljena, a da se
- * startuje jos jedna instanca iste aplikacije (dok MDB ne "hvata"
- * poruke). Videcemo da queue polako raste (sa svakim startovanjem
- * aplikacije).
- *
- */
- @MessageDriven(activationConfig =
- {
- @ActivationConfigProperty(propertyName="destinationType",
- propertyValue="javax.jms.Queue"),
- @ActivationConfigProperty(propertyName="destination",
- propertyValue="java:jboss/exported/jms/queue/mojQueue")
- })
- public class PrimalacQueueMDB implements MessageListener {
- @EJB
- UserAppDB userDatabase;
- @EJB
- ChatAppDB chatDatabase;
- @EJB
- JMSDatabase jmsDatabase;
- public void onMessage (Message msg) {
- try {
- TextMessage tmsg = (TextMessage) msg;
- try {
- String text = tmsg.getText();
- long time = tmsg.getLongProperty("sent");
- String property = msg.getStringProperty("property");
- switch (property){
- case "loginUser":{
- String tokens[] = text.split(" ");
- String username = tokens[0];
- String password = tokens[1];
- String hostAlias = tokens[2];
- String sessionID = tokens[3];
- Host host = chatDatabase.getHostByAlias(hostAlias);
- User user = new User(username,password,host);
- boolean flag = userDatabase.addActiveUser(user);
- Session session = jmsDatabase.getSessionByID(sessionID);
- session.getBasicRemote().sendText("REST-Uspesan login");
- break;
- }
- case "registerUser":{
- String tokens[] = text.split(" ");
- String username = tokens[0];
- String password = tokens[1];
- User user = new User(username,password);
- boolean flag = userDatabase.addRegisteredUser(user);
- System.out.println("RegisterUser:" + flag);
- }
- break;
- case "remove":
- System.out.println("REMOVE");
- break;
- case "test":
- System.out.println("TEST PORUKA JE STIGLA IDEMOOOOOOOOO");
- break;
- default:
- ResteasyClient client = new ResteasyClientBuilder().build();
- ResteasyWebTarget target = client.target("http://localhost:8080/ProjekatREST/rest/users/print");
- Response response = target.request(MediaType.TEXT_PLAIN).get();
- String retVal = response.readEntity(String.class);
- System.out.println("Primio JMS : " + retVal);
- break;
- }
- } catch (JMSException e) {
- e.printStackTrace();
- }
- } catch (Exception e) {
- e.printStackTrace ();
- }
- }
- }
Add Comment
Please, Sign In to add comment