0

私はJmsが初めてです。Sun の Web サイトから jms チュートリアルをダウンロードしました。このチュートリアルを使用して最初の jms アプリケーションをコーディングしたときに、例外が発生しました。私のコードは次のようなものです。例外はネーミング例外です:

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());


  }
}
4

1 に答える 1

0

以下は、web-container のようなコンテナー内で実行している場合にのみ使用できます。これは、デフォルトコンテキストと呼ばれます。

Context context=new InitialContext();

これは Java デスクトップ アプリケーションであるため、コンテキスト ファクトリ、プロバイダー URL などを指定する必要があります。この記事を読んでください。

于 2012-08-07T13:52:33.893 に答える