PDA

View Full Version : [JavaServlet]Tomcat non trova la servlet


anx721
27-06-2005, 23:27
Salve,

ho installato tomcat 5.5.9 e ho provato a scrivere una servlet ma quando provo ad eseguirla ho l'errore:

The requested resource (/myapp/servlet/ciao) is not available.

La servlet è questa:


import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class ciao extends HttpServlet {

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Servlet Testing</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("Ciao");
out.println("</BODY>");
out.println("</HTML>");
}
}


All'interno della cartella webapps di tomcat ho creato le seguenti cartelle:

webapps
...|
...+--myapp
.......|
.......+--WEB-INF
............|
............+--classes
............|...|
............|...+--ciao.java
............|...+--ciao.class
............|
............+--web.xml

dove ciao.java contiene la definizione della servlet mentre web.xml è:


<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<servlet>
<servlet-name>ciao</servlet-name>
<servlet-class>ciao</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ciao</servlet-name>
<url-pattern>/ciao</url-pattern>
</servlet-mapping>
</web-app>


La servlet la invoco con il comando:

http://localhost:8080/myapp/servlet/ciao

ma ottengo l'erore scritto sopra.


Se provo ad eseguire le servlet di esempio di tomcat contenute nella cartella servlets-examples funzionano.

Sapete cosa sbaglio?

maulattu
28-06-2005, 07:34
prova a riavviare tomcat, perché credo che all'avvio faccia il deploy di tutto quello che hai "installato" nella tua web application (servlet & c).
così com'è non mi sembra di trovare errori nel codice... :muro: :muro:

Angus
28-06-2005, 09:03
hai provato a togliere 'servlet' dall'url?

anx721
28-06-2005, 12:20
hai provato a togliere 'servlet' dall'url?
Cosi ha funzionato anche se non capisco bene il perche sul libro l'indirizzo da digitare lo dava in quel modo, ma nell'xml aveva omesso l'elemento servlet-mapping che avevo aggiunto io perche non funzionava lo stesso...

Angus
29-06-2005, 10:17
Cosi ha funzionato anche se non capisco bene il perche sul libro l'indirizzo da digitare lo dava in quel modo, ma nell'xml aveva omesso l'elemento servlet-mapping che avevo aggiunto io perche non funzionava lo stesso...

:winner:

servlet-mapping è proprio lo standard per associare un pattern di URL ad una servlet, ti consiglio di prenderci gusto ;) . Non so perchè non funzioni come dice il tuo libro, ma quel 'servlet' dovrebbe essere mappato da qualche parte in Tomcat, altrimenti nisba.