2014-01-15 38 views
0

我是新來的傑裏,並試圖在Jetty9上實現WebSocket客戶端。Jetty9 WebSocket客戶端 - SessionFactory.createSession導致java.lang.NullPointerException

我在Jetty8上看到了一個例子。

org.eclipse.jetty.websocket類WebSocketClient

http://archive.eclipse.org/jetty/8.0.0.v20110901/apidocs/org/eclipse/jetty/websocket/WebSocketClient.html

創建WebSocketClient的新實例是:

WebSocketClientFactory factory = new WebSocketClientFactory(); 
    factory.start(); 

    WebSocketClient client = factory.newWebSocketClient(); 
    // Configure the client 

    WebSocket.Connection connection = client.open(new 
URI("ws://127.0.0.1:8080/"), new WebSocket.OnTextMessage() 
    { 
    public void onOpen(Connection connection) 
    { 
     // open notification 
    } 

    public void onClose(int closeCode, String message) 
    { 
     // close notification 
    } 

    public void onMessage(String data) 
    { 
     // handle incoming message 
    } 
    }).get(5, TimeUnit.SECONDS); 

    connection.sendMessage("Hello World"); 

但是,我從來沒有見過一個文檔Jetty9爲這個。

到目前爲止,指

org.eclipse.jetty.websocket.common Interface SessionFactory

//---------------------------------------------- 
WebSocketSession createSession(URI requestURI, 
          EventDriver websocket, 
          LogicalConnection connection) 
//---------------------------------------------- 

我已經試過

private WebSocketSessionFactory factory = new WebSocketSessionFactory(); 

     try 
      { 
       WebSocketSession session = factory.createSession(uri, 
eventDriver, connection); 
       RemoteEndpoint ep = session.getRemote(); 
      } 
     catch (Exception ex) 
      { 
       System.out.println("=ERROR= " + ex); 
       //=ERROR= java.lang.NullPointerException 
      } 

     private EventDriver eventDriver = new EventDriver() 
     { 
      @Override 
      public WebSocketPolicy getPolicy() 
      { 
       return null; 
      } 

      //...................................... 

      @Override 
      public void incomingFrame(Frame frame) 
      { 

      } 
     }; 

     private LogicalConnection connection = new LogicalConnection() 
     { 
      @Override 
      public void close() 
      { 

      } 

      //............................... 


      @Override 
      public void resume() 
      { 

      } 
     }; 

,但我已經遇到顯示java.lang.NullPointerException

我們如何實現Jetty9 WebSocket客戶端?

感謝您的諮詢。

回答