博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Bug历练手册】Frame must be terminated with a null octet
阅读量:5927 次
发布时间:2019-06-19

本文共 1599 字,大约阅读时间需要 5 分钟。

stomp body 中文解析 问题

Spring 里边对于Stomp 通信解析通过StompEncoder实现,核心代码如下

public byte[] encode(Map
headers, byte[] payload) { Assert.notNull(headers, "'headers' is required"); Assert.notNull(payload, "'payload' is required"); try { ByteArrayOutputStream baos = new ByteArrayOutputStream(128 + payload.length); DataOutputStream output = new DataOutputStream(baos); if (SimpMessageType.HEARTBEAT.equals(SimpMessageHeaderAccessor.getMessageType(headers))) { if (logger.isTraceEnabled()) { logger.trace("Encoding heartbeat"); } output.write(StompDecoder.HEARTBEAT_PAYLOAD); } else { StompCommand command = StompHeaderAccessor.getCommand(headers); if (command == null) { throw new IllegalStateException("Missing STOMP command: " + headers); } output.write(command.toString().getBytes(StompDecoder.UTF8_CHARSET)); output.write(LF); writeHeaders(command, headers, payload, output); output.write(LF); writeBody(payload, output); output.write((byte) 0); } return baos.toByteArray(); } catch (IOException ex) { throw new StompConversionException("Failed to encode STOMP frame, headers=" + headers, ex); } }

字符集选用UTF-8解析

问题解决

出现这种问题主要是客户端序列化时对于UTF-8支持有问题, 之前我碰到的情况主要是 Socket Js客户端中,并未将web页面中的文字转化为UTF8格式

转载于:https://www.cnblogs.com/cunchen/p/9464104.html

你可能感兴趣的文章
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
(转)DOTA新版地图6.78发布:大幅改动 增两位新英雄
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>