Handling exceptions in websocket

62 views
Skip to first unread message

devansh mehta

unread,
Apr 22, 2014, 1:23:23 PM4/22/14
to play-fr...@googlegroups.com
I recently installed play 2.2.x and was trying to learn websocket. I used the sample application in the play samples for java application "websocket-chat". I am creating WebSocket<JsonNode> and returing it. If I try to send non json message to this websocket via browser I get the following exception. I would like to know is there a good way to handle such exception. Right now it just prints on the console.

java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('l' (code 108)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: java.io.StringReader@1bc819c3; line: 1, column: 2]
        at play.libs.Json.parse(Json.java:71)
        at play.core.j.JavaWebSocket$$anonfun$2.apply(JavaWebSocket.scala:65)
        at play.core.j.JavaWebSocket$$anonfun$2.apply(JavaWebSocket.scala:65)
        at scala.PartialFunction$AndThen.apply(PartialFunction.scala:181)
        at play.core.server.netty.WebSocketHandler$$anon$1.messageReceived(WebSocketHandler.scala:77)
        at com.typesafe.netty.http.pipelining.HttpPipeliningHandler.messageReceived(HttpPipeliningHandler.java:64)
        at org.jboss.netty.handler.codec.http.HttpContentDecoder.messageReceived(HttpContentDecoder.java:138)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
        at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
        at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('l' (code 108)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: java.io.StringReader@1bc819c3; line: 1, column: 2]
        at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369)
        at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:599)
        at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:520)
        at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleUnexpectedValue(ReaderBasedJsonParser.java:1379)
        at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:669)
        at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2926)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2873)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
        at play.libs.Json.parse(Json.java:69)
        ... 20 more

devansh mehta

unread,
Apr 22, 2014, 4:24:47 PM4/22/14
to play-fr...@googlegroups.com
Does GlobalSettings.onError() method is called back on websocket errors?

Thanks
Devansh
Reply all
Reply to author
Forward
0 new messages