I can use
java class to look up the Topic on my local box server, and publish/subscribe messages. However, it failed when I tried to look up the Topic located on remote server within the same network. It seems it still trys to look up Topic on my local server, it's so strange. Could anybody help me out? It's something related to Namespace, how to check that? Thanks!
------------------------------------------------------
private void sendMessageToTopic(){
try{
Context ctx = getInitialContext();
TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory)ctx.lookup("jms/demoTopicConnFactory");
Topic topic = (Topic)ctx.lookup("jms/demoTopic");
TopicConnection topicConnection = topicConnectionFactory.createTopicConnection();
TopicSession topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
TopicPublisher topicPublisher = topicSession.createPublisher(topic);
TextMessage msg = topicSession.createTextMessage();
msg.setText("Test message.");
topicPublisher.publish(msg);
}catch(Exception e){
e.printStackTrace();
}
}
private Context getInitialContext() throws NamingException {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "admin");
env.put(Context.SECURITY_CREDENTIALS, "systemadmin");
env.put(Context.PROVIDER_URL, "ormi://remote host name");
return new InitialContext(env);
}
-------------------------------------------------------
Jianhua Ren