2012-08-07 38 views
0

我是Jms的新手。我從sun網站下載了jms教程,當我使用本教程編寫第一個jms應用程序時,我得到一個異常。我的代碼就是這樣。例外的是命名異常:Jms異常:javax.naming.NoInitialContextException

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial Exception in thread "main" java.lang.NullPointerException. 

我的代碼:

public class SampleClass1 { 
    public static void main(String[] args) throws NamingException, JMSException { 

    Context context=new InitialContext(); 

    QueueConnectionFactory queueConnectionFactory=(QueueConnectionFactory)context.lookup("QueueConnectionFactory"); 

    Queue queue=(Queue) context.lookup("MyQueue"); 

    QueueConnection queueConnection=(QueueConnection) queueConnectionFactory.createQueueConnection(); 

    QueueSession queueSession=queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE); 
    QueueSender queueSender=queueSession.createSender(queue); 

    Message message=(Message) queueSession.createTextMessage("Hello Word"); 
    queueSender.send((javax.jms.Message) message); 

    QueueReceiver queueReceiver=queueSession.createReceiver(queue); 

    queueConnection.start(); 

    Message receivedMessage=(Message) queueReceiver.receive(); 
    System.out.println(receivedMessage.toString()); 


    } 
} 
+0

嗨..檢查出此鏈接http://stackoverflow.com/questions/1525385/noinitialcontextexception-errori/20042444#20042444 – nichu09 2013-11-18 07:42:39

回答

0

當你像Web容器的容器內運行,則只能使用以下。它被稱爲default context

Context context=new InitialContext(); 

因爲,你的是一個Java桌面應用程序,你應該到指定的上下文工廠,供應商網址等閱讀this article