Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27

    avviare un server chat su tomcat Topic

    Ciao a tutti,
    sto cercando di realizzare una chat in java che dovrò inserire in un sito web. Ne ho fatto una in passato composta da una classe server che si mette in ascolto su una porta e una serie di client che si collegano ad essa attraverso un sistema di socket. Il problema che ho adesso è quella di farla girare su un application server tipo tomcat. Dovrei richiamare la classe ServerWeb nel momento del deploy dell'applicazione e farla rimanere in ascolto per tutta la vita dell'applicazione, ma non riesco a capire come fare per lanciarla. Qualcuno sa dirmi se c'è un modo per eseguire una classe java in automatico al momento del deploy dell'applicazione? Forse dovrei modificarla e farla diventare una servlet? Vi prego aiuatemi!!!
    Grazie a tutti per l'attenzione.

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    fai una classe che implementa ServletContextListener e nel metodo contextInitialized metti il codice che ti serve
    dunque nel web.xml metti questo
    <listener>
    <listener-class>package.TuaClasse</listener-class>
    </listener>
    quando la webapp viene deployata tomcat creerà un'istanza del listener e chiamerà il suo metodo

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27
    Ho provato a fare come mi ha detto però Tomcat si blocca durante il suo avvio. Forse perchè nel nel file web.xml è già presente un altro listener?

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    direi di no
    riempi il codice di try catch e stampa le eccezioni

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27
    Il codice che eseguo nel listener è:

    ServerSocket s = new ServerSocket(port);
    System.out.println("Server listening on " + port + "\n");
    while(true){
    Socket client = s.accept();
    User user = new User(client, "Client" + users.size(), users.size());
    }

    L'ultimo messaggio che mi da Tomcat è "Server listening on...." poi si blocca forse perchè in attesa di connessione dai client, in quanto il metodo accept è bloccante. Cosa ne pensi?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    27
    ho risolto mettendo tutto in un thread.
    grazie mille per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.