Prima applicazione web

di il
2 risposte

Prima applicazione web

Ciao,

 ho installato sul mio pc il web server di Apache Tomcat/10.1.7 e dopo  la configurazione iniziale volevo caricare  un programma di esempio che mi stampava semplicemente Hello world  dal browser.

Ho realizzato il servlet su Eclipse e successivamente sono andato su http://localhost:8080/manager/html e ho effettuato direttamente da li il Deploy del file  Hello.war  ma quando provo  a visualizzare la risposta dal browser su http://localhost:8080/Hello/ mi restituisce il messaggio 404 not found.

 vi riporto il codice e come libreria sto utilizzando javax.servlet(versione 3.0) 

    import java.io.IOException;
	import java.io.PrintWriter;
	import javax.servlet.ServletException;
	import javax.servlet.http.HttpServlet;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;
	import javax.servlet.annotation.WebServlet;


	@WebServlet("/Hello")
	public class Hello extends HttpServlet {

	    
public void doGet(HttpServletRequest request, HttpServletResponse response)
	            throws ServletException, IOException {
	        
	        response.setContentType("text/html");
	        PrintWriter out = response.getWriter();
	        out.println("<html>");
	        out.println("<head>");
	        out.println("<title>Hello World</title>");
	        out.println("</head>");
	        out.println("<body>");
	        out.println("<h1>Hello World!</h1>");
	        out.println("<p>Esempio di servlet java</p>");
	        out.println("</body>");
	        out.println("</html>");
	    }
	}

è un problema di configurazione del Tomcat oppure dipende dal mio file .war che non è correttamente configurato ?

Da quanto ho capito per una servlet così semplice non serve la configurazione del file web.xml ma basta l'annotation che ho inserito  @WebServlet("/Hello").

2 Risposte

  • Re: Prima applicazione web

    La documentazione di Tomcat 10.1.7 dice che tale Servlet Container implementa le specifiche Jakarta EE.

    Mi sa che lì non funziona (e dovresti avere dei messaggi di errore nei log di Tomcat… mi aspetto una riga di ClassNotFoundException).

    Hai due possibilità:

    1) Aggiornare le librerie del tuo progetto da JEE a JakartaEE (cambiano proprio i nomi dei package, da javax.servlet a jakarta.servlet)

    2) Fare il downgrade ad una versione precedente di Tomcat (tipo la 9), che è ancora basata sul JEE

  • Re: Prima applicazione web

    Ciao ,

    mi dava 404 perchè dovevo mettere http://localhost:8080/Hello/Hello quindi ho tolto “/Hello" da @WebServlet  e ho lasciato solo "/ ”.

    Grazie comunque per il consiglio aggiungendo jakarta.servlet al posto di javax.servlet mi ha risolto altri problemi.

Devi accedere o registrarti per scrivere nel forum
2 risposte