- PR -

J2EE&OpenJMS

1
投稿者投稿内容
M@C
会議室デビュー日: 2005/09/07
投稿数: 4
投稿日時: 2005-09-14 21:23
以下の構成でJMSを使用しメッセージを送信しようとしているのですが、
 J2EE1.3.1 RI*OpenJMS0.7.6
J2EE(RI)内にあるJMSが優先されるようでうまくいきません。。

下記のソースを単体で動かした場合は、問題なく動作しますが、
J2EE(RI)内のソースに組み込んで実行する下記のエラーとなり
「JmsQueueConnectionFactory」が見つからないとのエラーです。

解決策がありましたら知恵をお貸しください。

また、OpenJMSを使用する理由は、
 メッセージキューの管理がしやすいのとデータベースでキュー管理が簡単にできる
などの理由です。
J2EE(RI)の標準JMSを使用しない理由は、
 メッセージキューの残り数がわからない!?のと
 キューが残っている状態で停止し、次にJ2EE(RI)を起動したときに残りキューが
 起動しきっていない状態で受信処理が始まってしまう!?
などの理由です。
※このあたりは、勉強不足のため不明な点も多いかと思います。

OpenJMS以外でも何かよいものがありましたら教えてください。

--SORCE------------------------------------------------
import java.util.*;
import javax.jms.*;
import javax.naming.*;
import org.exolab.jms.client.*;

public class SampleA {

public static void main(String[] args) {
new SampleA();
}

public SampleA() {
try {
//Hashtable properties = new Hashtable();
//properties.put(Context.INITIAL_CONTEXT_FACTORY,
// "org.exolab.jms.jndi.InitialContextFactory");
//properties.put(Context.PROVIDER_URL, "rmi://localhost:1099/");
// Context の取得
//Context context = new InitialContext(properties);

Properties jndiResource = new Properties();
jndiResource.load(getClass().getResourceAsStream("jndi.properties"));
Context context = new InitialContext(jndiResource);

// PTP 用コネクションファクトリの取得
QueueConnectionFactory factory = (QueueConnectionFactory) context.lookup("JmsQueueConnectionFactory");
QueueConnection conn = factory.createQueueConnection();

conn.start();
// セッションの作成
QueueSession session = conn.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
// キューの取得
JmsQueue queue = (JmsQueue) context.lookup("queue1");
// メッセージの送信
QueueSender sender = session.createSender(queue);
TextMessage message = session.createTextMessage("HelloWorld");
sender.send(message);
// 終了処理
conn.stop();
session.close();
conn.close();
} catch (Exception p) {
p.printStackTrace();
}
}
}
-------------------------------------------------------
--ERROR------------------------------------------------
javax.naming.NameNotFoundException: JmsQueueConnectionFactory not found
<<no stack trace available>>
-------------------------------------------------------
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-09-14 22:18
本筋とは関係ないのですが、J2EE RIは実運用には使用できないのですが、その辺は
大丈夫でしょうか。

引用:

また、OpenJMSを使用する理由は、
 メッセージキューの管理がしやすいのとデータベースでキュー管理が簡単にできる
などの理由です。


この辺を読むと実運用で使おうとしているように見えるのですが。
M@C
会議室デビュー日: 2005/09/07
投稿数: 4
投稿日時: 2005-09-14 22:49
現在、JAVAの勉強をしておりまして
思いついたことがJAVAで実際に実現できるのかをいろいろ試しています。。
J2EE RIを使っている理由は、
J2EEの基本となるものと認識しており今後、他のAPサーバを使用することに
なっても無駄にはならないと思って使ってます。
1

スキルアップ/キャリアアップ(JOB@IT)