Javascript WebSocket在发送Base64编码字符串时关闭

Javascript WebSocket在发送Base64编码字符串时关闭,javascript,java,tomcat,websocket,jsr356,Javascript,Java,Tomcat,Websocket,Jsr356,我正试图通过websocket发送一个base64编码的字符串(从图像转换而来),这在javascript客户端上运行良好 但是如果我使用java客户机(@clientEndPoint),onMessage函数会被触发一次,websocket连接会立即关闭。没有错误 我再次尝试从服务器发送普通字符串,并且java客户端功能正常。但不能使用base64编码字符串 我正在使用Tomcat 7.0.69,下面是代码片段: 服务器端点: if (imageToBeSend != null) { e

我正试图通过websocket发送一个base64编码的字符串(从图像转换而来),这在javascript客户端上运行良好

但是如果我使用java客户机(@clientEndPoint),onMessage函数会被触发一次,websocket连接会立即关闭。没有错误

我再次尝试从服务器发送普通字符串,并且java客户端功能正常。但不能使用base64编码字符串

我正在使用Tomcat 7.0.69,下面是代码片段:

服务器端点:

if (imageToBeSend != null) {
   encodedImage = new sun.misc.BASE64Encoder().encode(imageToBeSend);
   session.getBasicRemote().sendText(encodedImage);
   }
Java客户端:

@ClientEndpoint
public class SomeClass {
    CountDownLatch latch = new CountDownLatch(1);
    private Session session;
    String msg;

    @OnOpen
    public void open(Session session) {
        this.session = session; 
        //some stuff
    }

    @OnClose
    public void close(Session session) {
        System.out.println("Closing the connection");
    }

    @OnError
    public void onError(Throwable error) {
        System.out.println("!!!ERROR!!!!!" + error);
        error.printStackTrace();
    }

    @OnMessage
    public void handleMessage(String message, Session session) throws IOException {
     System.out.println("got the json string  "+message.length());
     // more stuff
    }
在这里,handle消息被调用一次,并打印相应的sysout,然后立即调用onClose。永远不会调用onError