找不到合适的编码器(java websocket)

时间:2015-08-06 08:42:56

标签: javascript java web-services websocket

我遇到了一些问题我尝试使用websockets编写一些web应用程序来进行数据流传输它尚未准备就绪但我正在研究它。 我尝试向我的服务器发送一个字符串,服务器应该使用UUID向我发回消息我首先发送了UUID

session.getBasicRemote().sendText(uuid.tostring())

运行良好,但现在我尝试发送地图,以便我可以使用

将UUID和字符串一起发送

session.getBasicRemote().sendObject(map);

但是现在我的JS客户端没有收到我尝试发送服务器的数据会引发异常

  

javax.websocket.EncodeException:找不到合适的编码器

我现在不知道如何解决这个问题。

JS代码

var websocket;
$(document).ready(function(){
    websocket = new WebSocket("ws://localhost:8080/TimeStreamingTestartID-1.0-SNAPSHOT/websockets/simplestockmarket")

    websocket.onopen = function(){ 
    alert("SUCESS: REGISTERED!!");
    }

$("#tblcontainer").html('<table id="tableID" class="table table-bordered" ><thead><tr><th>Identification</th><th>Text</th></tr></thead></table>')
$("#start").click(function(){

    websocket.send("Test")
    websocket.onmessage = function(erg){ 
    $("#tableID").append('<tr><td>'+"1"+'</td><td>'+erg+'</td></tr>')
    console.log(erg);
    }

});
});

我的java onMessage方法

    @OnMessage
public void message(Session session,String message) throws IOException {
    UUID uuid = UUID.randomUUID();
    Map map = new HashMap<>();
    map.put(uuid,message);

    try {
        session.getBasicRemote().sendObject(map);
    } catch (EncodeException e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:1)

您的服务器端点如何?你有这个注释吗?

@ServerEndpoint(value="/whatever", encoders = {MessageEncoder.class}, decoders = {MessageDecoder.class}) 
public class MessageService {

    @OnMessage
    public void message()...
}