标签:spring-amqp java spring rabbitmq amqp
有一个远程RabbitMQ服务器,它只允许我发送和接收消息.这意味着我无法创造任何东西.我发送了一个请求,并以JSON格式得到答案.
在我的应用程序中,我有一个简单的Receiver类:
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class Receiver {
@RabbitListener(queues = "QueueName")
public void receive(String in) {
System.out.println(" [x] Received '" + in + "'");
}
}
我希望收到一个JSON对象.而不是这个我得到一堆数字:
[x] Received '123,34,97,99,116,105,111,110,34,58,34,103,101,116,73,110,102,111,34,44,34,114,101,115,117,108,116,34,58,34,78,111,116,82,101,103,105,115,116,101,114,101,100,34,44,34,112,97,121,108,111,97,100,34,58,110,117,108,108,125'
我想这是JSON对象,但我怎样才能将它转换为可读格式?
解决方法:
最有可能的消息是以错误的格式(字符串化的字节数组)发送的,因此您将获得这种形式的消息.修改发件人或将其转换为正确的字符串.
String str = "123,34,97,99,116,105,111,110,34,58,34,103,101,116,73,110,102,111,34,44,34,114,101,115,117,108,116,34,58,34,78,111,116,82,101,103,105,115,116,101,114,101,100,34,44,34,112,97,121,108,111,97,100,34,58,110,117,108,108,125";
String[] chars = str.split(",");
StringBuilder builder = new StringBuilder();
Arrays.asList(chars).stream().map(Byte::valueOf).forEach(b -> builder.append((char)b.byteValue()));
System.out.println(builder.toString());
whitch输出
{“action”:”getInfo”,”result”:”NotRegistered”,”payload”:null}
标签:spring-amqp,java,spring,rabbitmq,amqp 来源: https://codeday.me/bug/20190731/1586655.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。