0
            environment.put(Context.INITIAL_CONTEXT_FACTORY,QUEUE_CONTEXT);
            System.out.println("QUEUE_URL -> " + QUEUE_URL);
            environment.put(Context.PROVIDER_URL,QUEUE_URL);
            try{
            ctx = new InitialDirContext(environment);
            String MYCF_LOOKUP_NAME = QUEUE_CONTEXT_FACTORY;
            connectionFactory = (ConnectionFactory) ctx.lookup(MYCF_LOOKUP_NAME);
            connection = ((MQQueueConnectionFactory) connectionFactory)
                                        .createQueueConnection();

それが正しいかどうかはわかりません..最初のプログラムでキューマネージャー名を要求すると接続の問題が発生しますが、2番目のプログラムではキューマネージャー名は必要ありません。最初のプログラム コードを 2 番目のプログラムに置き換える必要があります。

4

1 に答える 1

0

ここでは JNDI を使用しています。JNDI は Java Obects のストアです。JMS の場合、これは ConnectionFactory と宛先 (キューまたはトピック) になります。

そのため、JNDI に Connection Factory を配置する必要があります。これは、コードが既に持っていることを示唆しており、Queue も持っているためです。

これを行う必要がある理由が明確でない場合は、JNDIチュートリアルとJMSチュートリアルを検索して、非常に基本的な背景を取得することをお勧めします。

于 2013-11-06T09:25:56.757 に答える