Saudações!
Estou desenvolvendo um chat utilizando exemplo do Guj.
Tenho 2 classes denominadas UsuarioChat e Sala, sendo que Sala importa os atributos de UsuarioChat.
Em UsuárioChat tenho o seguinte método:
public static void enviaMensagem(Mensagem msg) throws IOException{
// I) Para um destinatário especifico
if (msg != null && msg.getPara() != null) {
msg.getPara().adicionaMsg(msg);
msg.getDe().adicionaMsg(msg);
return;
}
// II) Para todos da sala
Hashtable todos = getUsuarios();
Iterator i = todos.keySet().iterator();
while (i.hasNext()){
String nomeUsuario = (String) i.next();
Usuario usuario = ((Usuario) todos.get(nomeUsuario));
try{
usuario.adicionaMsg(msg);
}
catch(Exception e){
e.printStackTrace();
remUsuario(usuario);
}
}
}
Na classe Sala chamo esse método:
public final void doGet(
final HttpServletRequest req,
final HttpServletResponse res)
throws ServletException, IOException{
....
UsuarioChat.enviaMensagem(
new UsaMensagem(usuario, " entrou na sala"
+ new SimpleDateFormat("hh:mm").format(new Date())
+ "<script>addUser('"
+ usuario.getNome()
+ "');</script>")
);
O problema é que quando deixo o método enviaMensagem como estático em UsuarioChat dá erro de compilação dizendo que sala não consegue instanciar por que é estatico, se deixo sem ser estático, dá erro de compilação por que precisa ser estático.
Alguém pode me auxiliar?
Abraços[/u]