【问题标题】:Convert JSON string to JMS Message将 JSON 字符串转换为 JMS 消息
【发布时间】:2016-01-15 17:04:16
【问题描述】:

我有一个场景,我必须将 JMS 消息保存在磁盘上。我使用 Gson 库以 JSON 格式编写消息,如下所示:

Gson gson = new Gson();
String json = gson.toJson(message);
bufferedWriter.write(json);

但是当我尝试阅读这条消息时,

Message m = gson.fromJson(json, Message.class);
System.out.println(m.getJMSType());

我得到一个例外:

java.lang.RuntimeException: Unable to invoke no-args constructor for interface javax.jms.Message. Register an InstanceCreator with Gson for this type may fix this problem.
    at com.google.gson.internal.ConstructorConstructor$12.construct(ConstructorConstructor.java:210)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:207)
    at com.google.gson.Gson.fromJson(Gson.java:814)
    at com.google.gson.Gson.fromJson(Gson.java:779)
    at com.google.gson.Gson.fromJson(Gson.java:728)
    at com.google.gson.Gson.fromJson(Gson.java:700)

如何从 Json 字符串中读取 JMS 消息?

【问题讨论】:

    标签: java json jms gson


    【解决方案1】:

    Message 是一个接口。 Gson 无法初始化它。如果实际的实现类是已知的/在您的控制之下 - 您可以用类似的东西替换反序列化

    Message m = gson.fromJson(json, ActiveMQBlobMessage.class);
    

    否则,如果您需要接口-您可以查看this 帖子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      相关资源
      最近更新 更多