新着メール受信時にJMSでメッセージ送信
①$JBOSS_HOME/client/jbossall-client.jar
②$JBOSS_HOME/server/default/lib/jboss-j2ee.jar
①エージェントプロパティ->基本(電球アイコン)->実行 <= 新規メールの受信前
②エージェントプロパティ->セキュリティ(鍵アイコン)->実行時セキュリティレベルの設定 <= 2か3
以下ソース
import lotus.domino.*;
import java.util.Hashtable;
import javax.naming.*;
import javax.jms.*;
public class JavaAgent extends AgentBase {
public final static String JMS_FACTORY="QueueConnectionFactory";
public final static String QUEUE="queue/testQueue";
public static void main(String args[]) {
try {
QueueConnectionFactory queueConnectionFactory;
QueueConnection queueConnection;
QueueSession queueSession;
QueueSender queueSender;
Queue queue;
TextMessage msg;
// JNDI InitialContextを作成します
Hashtable hash = new Hashtable();
hash.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
hash.put("java.naming.provider.url", "localhost:1099");
//↑リモートに送信する場合はlocalhostをIPアドレスに変更
hash.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(hash);
// Connection FactoryとQueueをLook upします
queueConnectionFactory = (QueueConnectionFactory)ctx.lookup(JMS_FACTORY);
queue = (Queue) ctx.lookup(QUEUE);
// コネクションを作成
queueConnection = queueConnectionFactory .createQueueConnection();
// セッションを作成
queueSession = queueConnection.createQueueSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE);
// キューセンダーを作成
queueSender = queueSession.createSender(queue);
// メッセージを作成
msg = queueSession.createTextMessage();
msg.setText("Hello World");
// メッセージの配送をスタート
queueConnection.start();
// メッセージを送信
queueSender.send(msg);
// 接続を切断
queueSender.close();
queueSession.close();
queueConnection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下のエラーメッセージが表示される(動作には問題なし)
Agent error : Error cleaning up agent threads
どうもJBossMQのスレッドがうまく消化できないみたい
参考URL
最終更新:2008年10月01日 15:50