相关文章推荐
文雅的山楂  ·  Json解析方式汇总 excel ...·  1 年前    · 
绅士的酱牛肉  ·  Nebula & ...·  1 年前    · 
聪明的海龟  ·  《SeleniumBasic ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

How to resolve "org.eclipse.jetty.websocket.api.MessageTooLargeException" for Java WebSocketStompClient

Ask Question

When I'm running a Java WebSocketStompClient, I got below error: org.eclipse.jetty.websocket.api.MessageTooLargeException: Text message size [73728] exceeds maximum size [65536]

Sample code:

import org.apache.log4j.Logger;
import org.springframework.messaging.simp.stomp.StompFrameHandler;
import org.springframework.messaging.simp.stomp.StompHeaders;
import org.springframework.messaging.simp.stomp.StompSession;
import org.springframework.messaging.simp.stomp.StompSessionHandlerAdapter;
import org.springframework.util.concurrent.ListenableFuture;
import org.springframework.web.socket.WebSocketHttpHeaders;
import org.springframework.web.socket.client.WebSocketClient;
import org.springframework.web.socket.client.standard.StandardWebSocketClient;
import org.springframework.web.socket.messaging.WebSocketStompClient;
import org.springframework.web.socket.sockjs.client.SockJsClient;
import org.springframework.web.socket.sockjs.client.Transport;
import org.springframework.web.socket.sockjs.client.WebSocketTransport;
import org.springframework.web.socket.sockjs.frame.Jackson2SockJsMessageCodec;
import java.lang.reflect.Type;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutionException;
public class HelloClient {
    private static Logger logger = Logger.getLogger(HelloClient.class);
    StompSession session;
    private final static WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
    public ListenableFuture<StompSession> connect() {
        Transport webSocketTransport = new WebSocketTransport(new StandardWebSocketClient());
        List<Transport> transports = Collections.singletonList(webSocketTransport);
        SockJsClient sockJsClient = new SockJsClient(transports);
        sockJsClient.setMessageCodec(new Jackson2SockJsMessageCodec());
        WebSocketStompClient stompClient = new WebSocketStompClient(sockJsClient);
        long[] hb = stompClient.getDefaultHeartbeat();
        boolean en = stompClient.isDefaultHeartbeatEnabled();
        long timeout = stompClient.getReceiptTimeLimit();
        String url = "https://www.test.com";
        return stompClient.connect(url, headers, new MyHandler());
    public void subscribeMsg(StompSession stompSession) throws ExecutionException, InterruptedException {
        stompSession.subscribe("/topic/test", new StompFrameHandler() {
            public Type getPayloadType(StompHeaders stompHeaders) {
                return byte[].class;
            public void handleFrame(StompHeaders stompHeaders, Object o) {
                logger.info("Received message " + new String((byte[]) o));
                String response = new String((byte[]) o);
    private class MyHandler extends StompSessionHandlerAdapter {
        public void afterConnected(StompSession stompSession, StompHeaders stompHeaders) {
            logger.info("Now connected");
            session = stompSession;
    public boolean isConnected() {
        try {
            Thread.sleep(500);
            return session != null && session.isConnected();
        } catch (Exception e) {
            logger.warn("Error happens when checking connection status, ", e);
            return false;
    public static void main(String[] args) throws Exception {
        HelloClient helloClient = new HelloClient();
        ListenableFuture<StompSession> f = helloClient.connect();
        StompSession stompSession = f.get();
        helloClient.subscribeMsg(stompSession);
        while (true) {
            if (!helloClient.isConnected()) {
                logger.info("wss diconnected ");
                logger.info("need re-create ");

How to increase the limitation for a Java stomp websocket client? I found some not related answers How can I set max buffer size for web socket client(Jetty) in Java which are not suitable for stomp websocket client.

Also tried stompClient.setInboundMessageSizeLimit(Integer.MAX_VALUE); which doesn't work.

@xerx593, yes. The same exception. I add it right after "WebSocketStompClient stompClient = new WebSocketStompClient(sockJsClient);" – Bob Lee Dec 16, 2022 at 13:00 Yes! exactly same numbers. I've seen someone try setInboundMessageSizeLimit, but it solves another exception - "org.springframework.messaging.simp.stomp.StompConversionException: The configured STOMP buffer size limit of 65536 bytes has been exceeded", not mine. – Bob Lee Dec 16, 2022 at 13:04

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.