オブジェクトメッセージをテキストメッセージに変換する基本的なメッセージトランスフォーマーを作成しました。私は Java/OpenMQ/Glassfish の専門家ではありません
Transformer は正常にコンパイルされますが、STOMP Bridge を使用するように構成する必要があります...その方法についてオンラインで例を見つけることができません。
StompTransformer.class を C:\glassfish3\glassfish\domains\domain1\lib\ext にコピーし、必要なすべての jar を C:\glassfish3\glassfish\domains\domain1\lib\applibs にコピーしました (これが正しいかどうかはわかりません)場所)
config.properties に以下を追加しました。
imq.bridge.admin.user=admin
imq.bridge.stomp.messageTransformer=StompTransformer
imq.bridge.admin.password=admin
imq.bridge.activelist=stomp
imq.bridge.enabled=true
ドキュメントを読んでみました: https://docs.oracle.com/cd/E19587-01/821-0027/gjdnl/index.html >>> JMS ブリッジの設定
しかし、それは私を混乱させます:( XMLファイルに何を入れるべきか、何と呼ぶべきか、どこに置くべきか、そして構成に他に何が必要なのかわかりません.....
Transformer のコードは次のとおりです。
import java.util.*;
import javax.jms.*;
import com.sun.messaging.bridge.service.MessageTransformer;
import com.thoughtworks.xstream.XStream;
public class StompTransformer extends MessageTransformer <Message, Message> {
public Message transform(Message message,
boolean readOnly,
String charsetName,
String source,
String target,
Properties properties)
throws Exception {
Message m = message;
if (source.equals(SUN_MQ)) { //from Java Message Queue to STOMP client
if (message instanceof ObjectMessage) {
//create a new TextMessage for message to be transformed to
TextMessage tm = (TextMessage)createJMSMessage(JMSMessageType.TEXTMESSAGE);
//convert message to the TextMessage
XStream xstream = new XStream();
tm.setText(xstream.toXML(message));
m = tm;
}
}
return m;
}
}