2015-12-19 3 views
-1

Я пытаюсь сделать связь websocket с eclipse ide, и когда я запускаю свой код, я получаю исключение NullPointerException. Я проверил и имя в GetAttribute такое же, как в компонентеHttpSession getAttribute() возвращающий нуль

package ws; 

import java.io.IOException; 
import java.util.Set; 
import java.util.concurrent.CopyOnWriteArraySet; 

import javax.websocket.server.ServerEndpoint; 

import fundstarter.model.ConnectToRMIBean; 

import javax.servlet.http.HttpSession; 
import javax.websocket.*; 

@ServerEndpoint(value="/ws", configurator = HandShake.class) 
public class WebSocketAnnotation { 

    private Session session; 
    private ConnectToRMIBean sessionUser; 
    private HttpSession httpSession; 
    private static final Set<WebSocketAnnotation> myConnections = new CopyOnWriteArraySet<WebSocketAnnotation>(); 

    public WebSocketAnnotation() { 

    } 

    @OnOpen 
    public void start(Session session, EndpointConfig config) { 

     this.session = session; 
     this.httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName()); 
     myConnections.add(this); 
     this.sessionUser = (ConnectToRMIBean) httpSession.getAttribute("RMIBean"); 
     //sendMessage("New message"); 
    } 

    @OnClose 
    public void end() { 
     // clean up once the WebSocket connection is closed 
     myConnections.remove(this); 
    } 

    @OnMessage 
    public void receiveMessage(String message) { 
     sendMessage(message); 
    }  

    @OnError 
    public void handleError(Throwable t) { 
     t.printStackTrace(); 
    }  

    private void sendMessage(String text) { 
     try { 
      System.out.println("[WebSocketAnnot]RMIBean User Id -> " + this.sessionUser.getUserID()); 
      this.session.getBasicRemote().sendText(text); 

     } catch (IOException e) { 
      try { 
       this.session.close(); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
     } 
    } 
} 

Может кто-нибудь сказать мне, что это моя ошибка?

ответ

-1

Я нашел ошибку. Это была опечатка на методе modifyHandshake на HandShake

Смежные вопросы