public class ServerRequest {
static ConnectionFactory serverConnectionFactory;
static Context jndiContext;
static Connection connectToServer;
static Queue replyToClientQueue;
public static Context getInitialContext(String serverAdresse,String port) throws NamingException {
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://localhost:1099");
InitialContext c = new InitialContext(p);
return c;
}
public static boolean initializeConnection() {
try {
jndiContext = getInitialContext("","");
ConnectionFactory serverConnectionFactory = (ConnectionFactory) jndiContext
.lookup("ConnectionFactory");
connectToServer = (org.jboss.mq.Connection) serverConnectionFactory.createConnection();
connectToServer.start();
Session session = connectToServer.createSession(false,SpySession.AUTO_ACKNOWLEDGE);
replyToClientQueue = session.createTemporaryQueue();
return true;
} catch (NamingException e) {
e.printStackTrace();
return false;
} catch (JMSException e) {
e.printStackTrace();
return false;
}
}
private MessageConsumer createListener(Connection connect, Queue replyToClient){
ServerListener listener= new ServerListener();
MessageConsumer clientConsumer = null;
clientConsumer=listener.initialize(connect, replyToClient);
return clientConsumer;
}
private void sendObjectMessage(String property, Serializable object){
try {
Session session = connectToServer.createSession(false,
Session.AUTO_ACKNOWLEDGE);
MessageProducer sendToServer = getServerRequestMP(session);
ObjectMessage oMessage = session.createObjectMessage();
oMessage.setObject(object);
oMessage.setStringProperty("MessageFormat", property);
oMessage.setJMSReplyTo(replyToClientQueue);
createListener(connectToServer,replyToClientQueue);
sendToServer.send(oMessage);
//session.commit();
// session.close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private MessageProducer getServerRequestMP(Session session) {
MessageProducer sendToServer = null;
try {
SpyQueue serverRequest = (SpyQueue) jndiContext
.lookup("queue/meineQueue");
sendToServer = session.createProducer((Destination)serverRequest);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sendToServer;
}
public void setEntity(Entity entity){
sendObjectMessageSR(IMessageProperty.SET_Entity, entity);
}
}