1 4 package it.bigatti.c6; 5 6 import java.sql.SQLException ; 7 8 import javax.jms.DeliveryMode ; 9 import javax.jms.JMSException ; 10 import javax.jms.Message ; 11 import javax.jms.MessageListener ; 12 import javax.jms.QueueConnection ; 13 import javax.jms.QueueConnectionFactory ; 14 import javax.jms.QueueSender ; 15 import javax.jms.QueueSession ; 16 import javax.jms.Session ; 17 import javax.jms.TextMessage ; 18 19 import org.mr.api.jms.MantaQueueConnectionFactory; 20 21 26 public class BadgeServer { 27 private static final int MESSAGE_TTL = 100000; 28 29 private QueueConnection con = null; 30 private QueueSession sendSession = null; 31 private QueueSession receiveSession = null; 32 private QueueSender sender = null; 33 34 public BadgeServer() throws JMSException , InterruptedException { 35 QueueConnectionFactory conFactory = 36 (QueueConnectionFactory ) new MantaQueueConnectionFactory(); 37 38 con = conFactory.createQueueConnection(); 40 con.start(); 41 sendSession = (QueueSession ) 43 con.createQueueSession(false,Session.AUTO_ACKNOWLEDGE); 44 receiveSession = (QueueSession ) 45 con.createQueueSession(false,Session.AUTO_ACKNOWLEDGE); 46 47 javax.jms.Queue sendQueue = sendSession.createQueue( 49 C6Constants.RECEIVE_QUEUE_NAME); 50 sender = sendSession.createSender(sendQueue); 51 52 javax.jms.Queue receiveQueue = receiveSession.createQueue( 54 C6Constants.SEND_QUEUE_NAME); 55 javax.jms.QueueReceiver qReceiver = 56 receiveSession.createReceiver(receiveQueue); 57 58 qReceiver.setMessageListener( new MessageListener () { 60 public void onMessage(Message message) { 61 final Message msg = message; 62 Thread th = new Thread ( new Runnable () { 63 public void run() { 64 TextMessage tmsg = (TextMessage )msg; 65 String line; 66 try { 67 line = tmsg.getText(); 68 System.out.println( "[receive]" + line ); 69 70 String badge = BadgeDAO.badgeCode(line); 72 73 77 String badgeEsiste = "OK"; 78 TextMessage msgSend = sendSession.createTextMessage(); 80 msgSend.setText( "BADGE: " + line + " " + badgeEsiste ); 81 82 sender.send( msgSend, 83 DeliveryMode.NON_PERSISTENT, 84 Message.DEFAULT_PRIORITY, 85 MESSAGE_TTL); 86 87 System.out.println( "[send] " + msgSend.getText() ); 88 89 if (badgeEsiste.equals("OK")) { 90 BadgeDAO.getInstance().registra(badge); 91 } 92 } catch (JMSException e) { 93 e.printStackTrace(); 94 } catch (SQLException e) { 95 e.printStackTrace(); 96 } catch (ClassNotFoundException e) { 97 e.printStackTrace(); 98 } 99 } 100 } ); 101 th.start(); 102 } 103 }); 104 105 while( true ) { 106 System.out.println("server..."); 107 Thread.sleep( 5000 ); 108 } 109 } 110 111 public static void main(String [] args) { 112 try { 113 new BadgeServer(); 114 } catch (JMSException e) { 115 e.printStackTrace(); 116 } catch (InterruptedException e) { 117 e.printStackTrace(); 118 } 119 } 120 } 121 | Popular Tags |