java - 与jms交换的接口(interface)

标签 java interface jms

我想通过 jms 队列与客户交换消息。像这样的东西:

User updated Address; Field Street; OldValue: foo; NewValue: bar;

与客户交流的最佳界面是什么?我可以像上面的文本一样定义它并作为 TextMessage 发送。但这并不是我真正喜欢的界面。

我应该与 java 类交换 API 吗?或者在 JMS 上使用 Soap? 什么是最好的方法?

最佳答案

您可以发送文本或 java 对象(必须实现 java.io.Serializable 接口(interface))。如果您将使用简单文本,请尝试将其结构化为结构化格式 xml 或 Json。

否则使用java对象传输

您可以发送文本或 java 对象(必须实现 java.io.Serializable 接口(interface))。如果您将使用简单文本,请尝试将其结构化为结构化格式 xml 或 Json。

如果您想使用 java 对象,这也可以。这是一个非常简单的例子:

/*the object you will be sent to consumer*/
  public class MSObject implements java.io.Serializable{
  ......
  }

  /*sending method*/
  private void sendObjectMessage() throws Exception {
        ActiveMQSession mysession = (ActiveMQSession) session;
        ObjectMessage msg = session.createObjectMessage();
        msg.setObject( new MSObject("first name","Jimmy") );
        msg.setJMSType(this.CMD_TYPE_MESSAGETYPE_OBJECT);
        producer.send(msg);
        if (transacted) {
            session.commit();
        }
        System.out.println("The object message has been sent to " + this.subject
                + " queue.");
        Thread.sleep(sleepTime);
    }
    /*receiving method*/
    public void onMessage(Message message) {

        if (message instanceof ObjectMessage) {
        System.out.println("recevied a Object Message");
        ObjectMessage msg = (ObjectMessage)message;
        MSObject obj = (MSObject)msg.getObject();
        System.out.println("info: ");
        System.out.println("key: "+obj.getKey());
        System.out.println("value: "+obj.getValue());
    }
    }

关于java - 与jms交换的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21304169/

相关文章:

java - 与 comapreTo 的接口(interface),子类使用自己重写

java - 检测异步 JMS MessageConsumer 何时出现异常?

java - Spring Jms 每秒发出警告消息

java - 从java访问oracle数据类型

c# - 与方法类型的接口(interface)取决于实现类

java - Java Android开发 “Failure in SSL library, usually a protocol”

java - 为什么我会收到有关compareTo 方法的错误?

java - Camel 向 OracleAQ 发送消息问题

java - 使用 GenericDAO 插入第二个数据源时出错

java - Intellij 类路径错误 由 : java. io.FileNotFoundException 引起