使用WebSockets,TyrusServer的DeploymentException

时间:2014-09-26 15:32:21

标签: java scala websocket tyrus

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.

导致这种情况的原因是什么?我使用的端点几乎完全是空的:

@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("{}")

并返回上面的错误。

1 个答案:

答案 0 :(得分:0)

端点类必须是公共的;

你明确地遇到了SocksEndpoint2类实例化的问题。它必须是公共的,并且必须具有零参数的构造函数 - 才能执行类似Class.forName(...).newInstance()的操作。