NoInitialContextException: необходимо указать имя класса в среде или системном свойстве
Я хочу получать сообщения от универсальных веб-методов обмена сообщениями, используя JMS и универсальный сервер обмена сообщениями.
И в моем классе получения Java я получаю это исключение.
javax.naming.NoInitialContextException: необходимо указать имя класса в среде или системном свойстве, либо в качестве параметра апплета, либо в файле ресурсов приложения: java.naming.factory.initial
это мой код для получения сообщения.
public class MyReceiver {
public static void main(String[] args) {
try {
//1) Create and start connection
InitialContext ctx=new InitialContext();
TopicConnectionFactory f=(TopicConnectionFactory)ctx.lookup("testFactory");
TopicConnection con=f.createTopicConnection();
con.start();
//2) create topic session
TopicSession ses=con.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
//3) get the Topic object
Topic t=(Topic)ctx.lookup("nirvana");
//4)create TopicSubscriber
TopicSubscriber receiver=ses.createSubscriber(t);
//5) create listener object
MyListener listener=new MyListener();
//6) register the listener object with subscriber
receiver.setMessageListener(listener);
System.out.println("Subscriber1 is ready, waiting for messages...");
System.out.println("press Ctrl+c to shutdown...");
while(true){
Thread.sleep(1000);
}
}catch(Exception e){System.out.println(e);}
}
}
и это MyListener.java
public class MyListener implements MessageListener {
public void onMessage(Message m) {
try{
TextMessage msg=(TextMessage)m;
System.out.println("following message is received:"+msg.getText());
}catch(JMSException e){System.out.println(e);}
}
}