1

オブジェクトメッセージをテキストメッセージに変換する基本的なメッセージトランスフォーマーを作成しました。私は 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;
 }
}
4

1 に答える 1