Java WebSocketStompClient отправляет протобуф как байт []
Ниже мой пример WebSocketStompClient и protobuf
message PushHeader {
double id = 1;
string first_name = 2;
string last_name = 3;
}
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.setDefaultMaxTextMessageBufferSize(10*1024*1024);
container.setDefaultMaxBinaryMessageBufferSize(10*1024 * 1024);
WebSocketClient webSocketClient = new StandardWebSocketClient(container);
WebSocketStompClient stompClient = new WebSocketStompClient(webSocketClient);
stompClient.setMessageConverter(new ByteArrayMessageConverter());
stompClient.setInboundMessageSizeLimit(Integer.MAX_VALUE);
Всякий раз, когда я пытаюсь отправить байта [], который содержит Protobuf(PushHeader.toByteArray()). Я продолжаю получать эту ошибку ниже. Я заметил, что это происходит только когда я заполняю поле id. Если я оставлю это поле пустым, оно пройдет. int64 и double не конвертируют правильно, я предполагаю.
Работает
PushMessageProto.PushHeader r = PushMessageProto.PushHeader.newBuilder().setFirstName("df").setLastName("R").build();
Не работает
PushMessageProto.PushHeader r = PushMessageProto.PushHeader.newBuilder().setFirstName("d").setLastName("R").setId(1).build();
Кто-нибудь знает, в каком направлении я должен идти?
org.springframework.messaging.simp.stomp.StompConversionException: фрейм должен заканчиваться нулевым октетом в org.springframework.messaging.simp.stomp.StompDecoder.readPayload(StompDecoder.java:301) ~[spring-messaging-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.messaging.simp.stomp.StompDecoder.decodeMessage(StompDecoder.java:139) ~[spring-messaging-4.2.5.RELEASE.jar:4.2.5.RELEASE] at org.springframework.messaging.simp.stomp.StompDecoder.decode(StompDecoder.java:111) ~[spring-messaging-4.2.5.RELEASE.jar:4.2.5.RELEASE] в org.springframework.messaging.simp.stomp.BufferingStompDecoder.decode(BufferingStompDecoder.java:133) ~[spring-messaging-4.2.5.RELEASE.jar:4.2.5.RELEASE] по адресу org.springframework.web.socket.messaging.StompSubProtocolHandler.handublientFileShindler.java:234) ~[spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE] в org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:307) [spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE] в org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:75) [spring-websocket-4.2.5.RELE.jar:4.2.5.RELEASE] at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:56) [spring-websocket-4.2.5.RELEASE.jar:4.2.5.REL.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.handleMessage(ExceptionWebSocketHandlerDecorator.java:58) [spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE] в org.springfsostacket.we...StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:110) [spring-websocket-4.2.5.RELEASE.jar:4.2.5. Java:42) [spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE] на org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:81) [spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE] в org.springframework.web.socket.adapStand $ onMessage(StandardWebSocketHandlerAdapter.java:78) [spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE] в org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:375] -websocket-8.0.3.jar:8.0.3] в org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:472) [tomcat-embed-websocket-8.0.3.jar:8.0.3] в org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:275) [tomcat-embed-websocket-8.0.3.jar:8.0.3] в org.apache.tomcat.websocket.WsFrameBase.processInsFrame (WBF).java:116) [tomcat-embed-websocket-8.0.3.jar:8.0.3] в org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:55) [tomcat-embed-websocket-8.0.3.jar:8.0.3] at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:194) [tomcat-embed-websocket-8.0.3.jar:8.0.3] в org.apache.coyote.http11.upgrade.AbstractServletDataWervjt_WairWatPlayer.jpg [tomcat-embed-core-8.0.3.jar:8.0.3] в org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:95) [tomcat-embed-core-8.0.3.jar:8.0.3] в org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:650) [tomcat-embed-core-8.0.3.jar:8.0.3] в org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) [tomcat-embed-core-8.0.3.jar:8.0.3] по адресу org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.j.:1575) [tomcat-embed-core-8.0.3.jar:8.0.3] в org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) [tomcat-embed-core-8.0.3.jar:8.0.3] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66] в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66] в java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]