2014-09-26 44 views
0
set 26, 2014 5:13:00 PM org.glassfish.tyrus.core.AnnotatedEndpoint callMethod 
INFO: Exception thrown from onError method public void main.scala.SocksEndpoint2.onError(javax.websocket.Session,java.lang.Throwable). 
javax.websocket.DeploymentException: Component provider threw exception when providing instance of class main.scala.SocksEndpoint2. 

什麼可以導致此?我使用的是終點幾乎是一座空城:部署異常與WebSockets,TyrusServer

@ServerEndpoint("/websocks") 
class SocksEndpoint2(system: ActorSystem) { 

    @OnMessage 
    def onMessage(mess: String, session: Session) { 

    } 
    @OnClose 
    def onClose(session: Session) { 

    } 

    @OnError 
    def onError(session: Session , t: Throwable) { 

    } 
} 

和發送通過JavaScript

var exampleSocket = new WebSocket("ws://localhost:8025/websocks") 
exampleSocket.send("{}") 

並返回上述錯誤。

+2

你明顯遇到SocksEndpoint2類實例化的問題。它必須是公共的,並且必須具有零參數的構造函數 - 能夠執行類似「Class.forName(...)。newInstance()」的操作。 – 2014-09-27 00:12:01

+2

他也可以用'ServerEndpointConfig.Configurator'和它的'getInstance()'調用 – 2014-10-02 14:32:39

+0

@PavelBucek自己來處理實例化,如果你將你的評論添加爲答案我會標記爲正確:) – LowFieldTheory 2014-10-02 22:00:43

回答

0

端點類必須是公共的;

您顯然在實例化SocksEndpoint2類時遇到了問題。它必須是公開的,並且必須具有零參數的構造函數 - 能夠執行諸如Class.forName(...).newInstance()之類的操作。