トピックに公開するには、以下のコードを使用しています。それは、JMSテンプレートで送信するカスタムオブジェクトをシリアル化する方法変換および送信メソッド
public interface Event {
public boolean isEmpty();
public AcEventDatafileTransaction getDatafileTransaction();
public AcEventObjectTransaction getObjectTransaction();
boolean isDatafileTransaction();
boolean isObjectTransaction();
boolean isRdbmsTransaction();
String getTransactionId();
}
その実装は、このようなもので、フォーマットconvertAndSend(デスティネーション先、オブジェクトのメッセージ)
Event event;
jmsTemplate.convertAndSend(topic, event);
私の現在のイベントインターフェースは、このようなものであるのです
public class EventPublisherImpl implements Event {
private final AcTransactionRecord transactionRecord;
private final Ac ac;
private final String[] actualTemplates;
private final String[] curveTemplates;
public AcEventPublisherImpl(final Ac ac,
final String[] actualTemplates,
final String[] curveTemplates,
final AcTransactionRecord acTransactionRecord) {
this.ac = ac;
this.transactionRecord = acTransactionRecord;
this.actualTemplates = actualTemplates;
this.curveTemplates = curveTemplates;
}
@Override
public boolean isEmpty() {
return transactionRecord.isEmpty();
}
@Override
public AcEventDatafileTransaction getDatafileTransaction() {
if (isDatafileTransaction()) {
return new AcEventDatafileTransactionPublisherImpl(transactionRecord.getDatafileTransaction());
}
return null;
}
@Override
public AcEventObjectTransaction getObjectTransaction() {
if (isObjectTransaction()) {
return new AcEventObjectTransactionPublisherImpl(ac, actualTemplates, curveTemplates, transactionRecord.getObjectOperations());
}
return null;
}
@Override
public boolean isDatafileTransaction() {
return transactionRecord.getType() == AcTransactionRecord.DATAFILE_TRANS;
}
@Override
public boolean isObjectTransaction() {
return transactionRecord.getType() == AcTransactionRecord.OBJECT_TRANS;
}
@Override
public boolean isRdbmsTransaction() {
return transactionRecord.getType() == AcTransactionRecord.RDBMS_TRANS;
}
@Override
public String getTransactionId() {
if (transactionRecord != null) {
return Integer.toString(transactionRecord.getNumber());
}
return "";
}
}
シリアル化可能な形式に変換するにはどうすればよいですか?
私の全目的は、イベントオブジェクトをトピックに公開することです。そのために私はconvertAndSendメソッドを使用しています。そのメソッドは、シリアル化されたクラスのオブジェクトを必要とします。私は現在持っていません。それは私が達成しようとしているものです。 私は適切な例とどのようにそれは私を助けにコードやポイントを介しての方法を提案してくださいいくつかの属性を持つクラスがメッセージコンバータにhttps://examples.javacodegeeks.com/enterprise-java/spring/spring-framework-jmstemplate-example/
を使用して直列化された例を見てきました。
私がメッセージを受信messagelistenersを使用しています。 onMessageメソッドでMessageオブジェクトを取得します。イベントタイプに戻すにはどうすればいいですか?より理解しやすくするために質問を編集しています。 – africandrogba
私はそれを使用しましたが、messagelistenerを使用しています。私はそれをメッセージとして受け取ったときにどのようにイベントオブジェクトに変換するのですか? – africandrogba
@africandrogbaメッセージの受信方法に関する回答を更新しました – MangEngkus