Не найден подходящий кодировщик (веб-сокет Java)

У меня есть проблема. Я пытался написать какое-то веб-приложение с веб-сокетами для потоковой передачи данных, оно еще не готово, но я работаю над этим. Я пытаюсь отправить своему серверу строку, и сервер должен отправить мне сообщение с 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();
    }
}

person alovaros    schedule 06.08.2015    source источник


Ответы (1)


Как выглядит конечная точка вашего сервера? У вас есть эта аннотация сверху?

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

    @OnMessage
    public void message()...
}
person darijan    schedule 06.08.2015
comment
@ServerEndpoint("/websockets/simplestockmarket") public class SimpleStockMarketWSServerEndpoint выглядит так на данный момент пытался написать как у вас но нет MessageEncoder - person alovaros; 06.08.2015
comment
Ну, если у вас его нет, импортируйте банку. - person darijan; 06.08.2015
comment
если бы вы сказали мне название баночки, это тоже было бы неплохо :D - person alovaros; 06.08.2015
comment
Извините, вы должны написать свой собственный: блог .idrsolutions.com/2013/12/ - person darijan; 06.08.2015
comment
Спасибо :D Я попробую, надеюсь, моих навыков хватит, чтобы написать это, лол. - person alovaros; 06.08.2015