I just encountered a peculiar little problem:
javax.websocket.Session session = //...
// this works
newSession.addMessageHandler(new MessageHandler.Whole<String>() {
@Override
public void onMessage(String message) {
MyWebSocket.this.onMessage(message);
}
});
// these don't work
newSession.addMessageHandler((MessageHandler.Whole<String>) MyWebSocket.this::onMessage);
newSession.addMessageHandler((MessageHandler.Whole<String>) message -> MyWebSocket.this.onMessage(message));
void onMessage(String message) {
System.out.println(message);
}
Does anybody know why lambda expressions won't work in this instance? There is no compile error, no exception, no nothing. The method ''onMessage'' is just not called.
I use Java 1.8.0_65 and the Tyrus reference implementation 1.9.