Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/01/2019, 10:44
dacroma
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años
Puntos: 2
Problemas con las anotaciones

Buen dìa compañeros del foro.
Estoy haciendo un proyecto con java que trata sobre websockets,
con JAVA EE7 y Glassfish 4.

Tengo todo bien, el html, el JS, y el modelo.
En el modelo hay una clase que se llama MiChat, es esta la clase que defino con el @serverEndpoint
pero en las anotaciones @onOpen, @onClose, @onMessage me devuelve un error de sintaxis, y al comparar la clase con las clases de otros proyectos que se definen de la misma manera, son iguales, realmente no encuentro el error.

esta es la clase

Código Java:
Ver original
  1. import java.io.IOException;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.websocket.EncodeException;
  5. import javax.websocket.Session;
  6. import javax.websocket.server.ServerEndpoint;
  7. import javax.websocket.OnOpen;
  8. import javax.websocket.OnClose;
  9. import javax.websocket.OnMessage;
  10.  
  11.  
  12. @ServerEndpoint(value="/chat",
  13.          encoders={EncoderMensaje.class},
  14.         decoders={DecoderMensaje.class}
  15.        )
  16.  
  17. public class MiChat {
  18.     private static final List<Session> conectados=new ArrayList<>();
  19.    
  20.     @onOpen//tiene el subrallado de error
  21.     public void inicio(Session sesion){
  22.         conectados.add(sesion);
  23.     }
  24.    
  25.     @onClose//tiene el subrallado de error
  26.     public void salir(Session sesion){
  27.         conectados.remove(sesion);
  28.     }
  29.    
  30.     @onMessage//tiene el subrallado de error
  31.     public void mensaje(Mensaje mensaje) throws IOException, EncodeException{
  32.         for(Session sesion:conectados){
  33.             sesion.getBasicRemote().sendObject(mensaje);
  34.         }
  35.     }
  36.    
  37. }

La clase tiene las respectivas librerias importadas, pero casualmente las librerias
Código Java:
Ver original
  1. import javax.websocket.OnOpen;
  2. import javax.websocket.OnClose;
  3. import javax.websocket.OnMessage;

tienen el subrallado que indica que nò estan siendo utilizadas.

Cambiè el nombre del proyecto por que pensè que estaba muy largo pero no, Intentè haciendo un proyecto nuevo e hize exactamente lo mismo pero nò copiando y pegando, sinò tipeando, pero tampoco. Realmente no se que mas hacerle, por cualquier lado que le miro, a mi punto de vista no tiene errores sintàcticos.

¿A que se debe el error en las anotaciones?.

De antemano muchas gracias por sus aportes.

Última edición por dacroma; 06/01/2019 a las 11:01