J'utilise le code mentionné ci-dessous pour publier un sujet. Il est du format convertAndSend (destination de destination, un message d'objet)Comment sérialiser l'objet personnalisé que vous envoyez dans le modèle JMS Méthode Convertir et envoyer
Event event;
jmsTemplate.convertAndSend(topic, event);
Mon interface actuelle de l'événement est quelque chose comme ça,
public interface Event {
public boolean isEmpty();
public AcEventDatafileTransaction getDatafileTransaction();
public AcEventObjectTransaction getObjectTransaction();
boolean isDatafileTransaction();
boolean isObjectTransaction();
boolean isRdbmsTransaction();
String getTransactionId();
}
Sa mise en œuvre est quelque chose comme ça,
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 "";
}
}
Comment puis-je le convertir en un format sérialisable?
Mon objectif est de publier un objet événement dans un sujet. Pour cela, j'utilise la méthode convertAndSend. Cette méthode nécessite un objet d'une classe sérialisée, que je n'ai pas actuellement. C'est ce que j'essaie d'accomplir. J'ai regardé des exemples où une classe avec quelques attributs est sérialisée en utilisant le convertisseur de message https://examples.javacodegeeks.com/enterprise-java/spring/spring-framework-jmstemplate-example/
S'il vous plaît suggérer une méthode par le biais du code ou pointez sur l'exemple approprié et comment cela m'aide.
J'utilise messagelisteners qui reçoivent le message. Il obtient un objet Message dans la méthode onMessage. Comment puis-je le convertir en type d'événement. Je suis en train d'éditer ma question pour mieux comprendre. – africandrogba
Je l'ai utilisé mais j'utilise messagelistener. Comment le convertir en objet événement quand je le reçois comme un message? – africandrogba
@africandrogba J'ai mis à jour la réponse sur la façon de recevoir le message – MangEngkus