|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.co.fujitsu.reffi.client.swing.model.BaseModel
jp.co.fujitsu.reffi.client.swing.model.JMSPublishCore
public class JMSPublishCore
[概 要]
JMSサーバトピックにメッセージを発行する為の機能モデルです。[詳 細]
JMSトピックを通じてPub/Sub通信を行う為のクラスです。必須設定メソッド
setTopicName(String) : メッセージ送信対象トピック名設定createSession() : TopicSession作成setMessage(Message) | setTextMessage(String) : 送信メッセージ設定[備 考]
使用例)
package demo.chat.action;
import java.util.List;
import javax.swing.JTextField;
import jp.co.fujitsu.reffi.client.swing.action.BaseAction;
import jp.co.fujitsu.reffi.client.swing.controller.ParameterMapping;
import jp.co.fujitsu.reffi.client.swing.event.ModelProcessEvent;
import jp.co.fujitsu.reffi.client.swing.model.JMSPublishCore;
import jp.co.fujitsu.reffi.client.swing.model.Model;
public class RemarkSendAction extends BaseAction {
@Override
protected boolean prepare(ParameterMapping parameterMapping) throws Exception {
// 送信メッセージ入力欄が空の場合は処理を行いません。
if("".equals(getComponentValueAsString("chatFrame.jtfRemark").trim())) {
return false;
}else{
return true;
}
}
@Override
protected void reserveModels(List> models) {
models.add(JMSPublishCore.class);
}
@Override
public boolean nextModel(int index, ModelProcessEvent prev, Model next) throws Exception {
if(index == 0) {
String remark = getComponentValueAsString("chatFrame.jtfRemark");
String userName = getComponentValueAsString("chatFrame.jtfUserName");
// メッセージを送信するTopicのJNDI名を設定します。
((JMSPublishCore)next).setTopicName("topic/chatTopic");
// JMSコネクションを確立してJMSセッションを作成します。
((JMSPublishCore)next).createSession();
// 送信するメッセージを設定します。
((JMSPublishCore)next).setTextMessage("<" + userName + "> " + remark);
}
return true;
}
@Override
public void successForward(int index, Model model, Object result) throws Exception {
// メッセージ正常送信後、送信メッセージ入力欄を空にします。
((JTextField)getComponent("chatFrame.jtfRemark")).setText("");
}
}
[環 境] JDK 6.0 Update 11
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
| コンストラクタの概要 | |
|---|---|
JMSPublishCore()
|
|
| メソッドの概要 | |
|---|---|
MapMessage |
createMapMessage()
[概 要] MapMessageオブジェクトを生成します。 |
ObjectMessage |
createObjectMessage()
[概 要] ObjectMessageオブジェクトを生成します。 |
void |
createSession()
[概 要] JMS TopicSessionを生成します。 |
StreamMessage |
createStreamMessage()
[概 要] StreamMessageオブジェクトを生成します。 |
TextMessage |
createTextMessage()
[概 要] TextMessageオブジェクトを生成します。 |
void |
done()
[概 要] JMS Topicコネクションを切断します。 |
String |
getConnectionFactoryName()
[概 要] JMSコネクションファクトリJNDI名を返却します。 |
Hashtable<String,String> |
getEnvironment()
[概 要] JMS接続を行う為の接続先環境設定プロパティを返却します。 |
Message |
getMessage()
[概 要] JMS Topicに発行するメッセージオブジェクトを返却します。 |
TopicPublisher |
getPublisher()
[概 要] JMSトピックにメッセージを発行するオブジェクトを返却します。 |
String |
getTextMessage()
[概 要] Textメッセージを取得する簡易メソッドです。 |
Topic |
getTopic()
[概 要] 購読を行うトピックを返却します。 |
TopicConnection |
getTopicConnection()
[概 要] サーバとのトピックコネクションを返却します。 |
String |
getTopicName()
[概 要] 購読開始、中止対象トピック名を返却します。 |
TopicSession |
getTopicSession()
[概 要] サーバとのトピックコネクションを返却します。 |
protected void |
mainproc()
[概 要] JMS Topicコネクションを開始してメッセージを発行します。 |
protected void |
postproc()
[概 要] モデル処理成功イベント、モデル処理終了イベントを発行します。 |
void |
setConnectionFactoryName(String connectionFactoryName)
[概 要] JMSコネクションファクトリJNDI名を設定します。 |
void |
setEnvironment(Hashtable<String,String> environment)
[概 要] JMS接続を行う為の接続先環境設定プロパティを設定します。 |
void |
setMessage(Message message)
[概 要] JMS Topicに発行するメッセージオブジェクトを設定します。 |
void |
setPublisher(TopicPublisher publisher)
[概 要] JMSトピックにメッセージを発行するオブジェクトを設定します。 |
void |
setTextMessage(String textMessage)
[概 要] Textメッセージを設定する簡易メソッドです。 |
void |
setTopic(Topic topic)
[概 要] 購読を行うトピックを設定します。 |
void |
setTopicConnection(TopicConnection topicConnection)
[概 要] サーバとのトピックコネクションを設定します。 |
void |
setTopicName(String topicName)
[概 要] 購読開始、中止対象トピック名を設定します。 |
void |
setTopicSession(TopicSession topicSession)
[概 要] サーバとのトピックコネクションを返却します。 |
void |
stop()
[概 要] JMS Topicコネクションを切断します。 |
| クラス jp.co.fujitsu.reffi.client.swing.model.BaseModel から継承されたメソッド |
|---|
addModelProcessListener, call, finalproc, fireModelFailure, fireModelFinished, fireModelSuccess, getController, getExecuteIndex, getListenerList, getParameterMapping, getResult, getSuccessCount, incrementSuccessCount, init, isAsync, isSkip, preproc, removeModelProcessListener, run, setAsync, setController, setExecuteIndex, setListenerList, setParameterMapping, setResult, setSkip, trap |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public JMSPublishCore()
| メソッドの詳細 |
|---|
public Hashtable<String,String> getEnvironment()
[概 要]
JMS接続を行う為の接続先環境設定プロパティを返却します。[詳 細]
environmentフィールドを返却します。[備 考]
public void setEnvironment(Hashtable<String,String> environment)
[概 要]
JMS接続を行う為の接続先環境設定プロパティを設定します。[詳 細]
environmentフィールドを引数environmentで設定します。[備 考]
environment - JMS接続を行う為の接続先環境設定プロパティpublic String getConnectionFactoryName()
[概 要]
JMSコネクションファクトリJNDI名を返却します。[詳 細]
connectionFactoryNameフィールドを返却します。[備 考]
public void setConnectionFactoryName(String connectionFactoryName)
[概 要]
JMSコネクションファクトリJNDI名を設定します。[詳 細]
connectionFactoryNameフィールドを引数connectionFactoryNameで設定します。[備 考]
connectionFactoryName - JMSコネクションファクトリJNDI名public TopicConnection getTopicConnection()
[概 要]
サーバとのトピックコネクションを返却します。[詳 細]
topicConnectionフィールドを返却します。[備 考]
public void setTopicConnection(TopicConnection topicConnection)
[概 要]
サーバとのトピックコネクションを設定します。[詳 細]
topicConnectionフィールドを引数topicConnectionで設定します。[備 考]
topicConnection - サーバとのトピックコネクションpublic TopicSession getTopicSession()
[概 要]
サーバとのトピックコネクションを返却します。[詳 細]
topicConnectionフィールドを返却します。[備 考]
public void setTopicSession(TopicSession topicSession)
[概 要]
サーバとのトピックコネクションを返却します。[詳 細]
topicConnectionフィールドを返却します。[備 考]
topicSession - サーバとのトピックコネクションpublic Topic getTopic()
[概 要]
購読を行うトピックを返却します。[詳 細]
topicフィールドを返却します。[備 考]
public void setTopic(Topic topic)
[概 要]
購読を行うトピックを設定します。[詳 細]
topicフィールドを引数topicで設定します。[備 考]
topic - 購読を行うトピックpublic String getTopicName()
[概 要]
購読開始、中止対象トピック名を返却します。[詳 細]
topicNameフィールドを返却します。[備 考]
public void setTopicName(String topicName)
[概 要]
購読開始、中止対象トピック名を設定します。[詳 細]
topicNameフィールドを引数topicNameで設定します。[備 考]
topicName - 購読開始、中止対象トピック名public TopicPublisher getPublisher()
[概 要]
JMSトピックにメッセージを発行するオブジェクトを返却します。[詳 細]
publisherフィールドを返却します。[備 考]
public void setPublisher(TopicPublisher publisher)
[概 要]
JMSトピックにメッセージを発行するオブジェクトを設定します。[詳 細]
publisherフィールドを設定します。[備 考]
publisher - JMSトピックにメッセージを発行するオブジェクトpublic String getTextMessage()
[概 要]
Textメッセージを取得する簡易メソッドです。[詳 細]
textMessageフィールドを返却します。[備 考]
public void setTextMessage(String textMessage)
[概 要]
Textメッセージを設定する簡易メソッドです。[詳 細]
textMessageフィールドを設定します。[備 考]
Textメッセージ情報はTopicSessionが無い状態でも生成出来る為、 簡易メッセージ設定メソッドとして用意されています。
textMessage - 送信するTextメッセージpublic Message getMessage()
[概 要]
JMS Topicに発行するメッセージオブジェクトを返却します。[詳 細]
messageフィールドを返却します。[備 考]
public void setMessage(Message message)
[概 要]
JMS Topicに発行するメッセージオブジェクトを設定します。[詳 細]
messageフィールドを引数messageで設定します。[備 考]
message - JMS Topicに発行するメッセージオブジェクト
public void createSession()
throws NamingException,
JMSException
[概 要]
JMS TopicSessionを生成します。[詳 細]
[備 考]
JMSメッセージオブジェクトはTopicSessionから作成します。
@Override
public boolean nextModel(int index, ModelProcessEvent prev, Model next) throws Exception {
if(index == 0) {
String remark = getComponentAsString("chatFrame.jtfRemark");
String userName = getComponentAsString("chatFrame.jtfUserName");
((JMSPublishCore)next).setTopicName("topic/chatTopic");
// 発行メッセージを設定する前に要createSessionメソッドコール
((JMSPublishCore)next).createSession();
((JMSPublishCore)next).setTextMessage("<" + userName + "> " + remark);
}
return true;
}
NamingException
JMSException
protected void mainproc()
throws JMSException
[概 要]
JMS Topicコネクションを開始してメッセージを発行します。[詳 細]
TopicConnectionをstartさせ、getTopic()に対応するPublisherを生成します。[備 考]
BaseModel 内の mainprocJMSException
protected void postproc()
throws Exception
[概 要]
モデル処理成功イベント、モデル処理終了イベントを発行します。[詳 細]
fireModelSuccess、fireModelFinishedメソッドをコールします。[備 考]
BaseModel 内の postprocException - オーバーライド先で発生する可能性が有る例外
public void done()
throws Exception
[概 要]
JMS Topicコネクションを切断します。[詳 細]
stopメソッドに処理委譲します。[備 考]
BaseModel 内の doneException
public void stop()
throws JMSException
[概 要]
JMS Topicコネクションを切断します。[詳 細]
[備 考]
JMSException
public TextMessage createTextMessage()
throws JMSException
[概 要]
TextMessageオブジェクトを生成します。[詳 細]
確立されているTopicSessionにTextMessageオブジェクトの生成を依頼します。[備 考]
JMSException
public ObjectMessage createObjectMessage()
throws JMSException
[概 要]
ObjectMessageオブジェクトを生成します。[詳 細]
確立されているTopicSessionにObjectMessageオブジェクトの生成を依頼します。[備 考]
JMSException
public MapMessage createMapMessage()
throws JMSException
[概 要]
MapMessageオブジェクトを生成します。[詳 細]
確立されているTopicSessionにMapMessageオブジェクトの生成を依頼します。[備 考]
JMSException
public StreamMessage createStreamMessage()
throws JMSException
[概 要]
StreamMessageオブジェクトを生成します。[詳 細]
確立されているTopicSessionにStreamMessageオブジェクトの生成を依頼します。[備 考]
JMSException
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||