PDA

View Full Version : [JAVA Servlet] Tomcat


Edde
31-08-2006, 18:11
Ciao :)

Ho usato tomcat un paio di anni fa, con bei risultati, ma ora non riesco più a farlo andare...

Sto provando un esempietto semplice semplice, seguendo una guida di HTML.it

Dentro /TOMCAT_HOME/webapps ho creato una cartella ose
In webapps/ose c'è questo file Index.htm
-------------------------------------------

<html>
<head>
<title>Titolo</title>
</head>

<body>
<div align="center">
<form name="Login" action=MainUrl method=get>
Categoria: <input name="categoria" type="text" /><br />
<input id="Submit" type="submit" value="Show" />
</form>
</div>
</body>

</html>
-------------------------------------------

Che crea una piccola form con un pulsante (non sono sicuro su cosa mettere nel campo action, ma ho fatto diverse prove e non va lo stesso).

In webapps\ose\WEB-INF c'è il file web.xml

---------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<!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>MainServlet</servlet-name>
<servlet-class>Main</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/MainUrl</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>30</session-timeout>
</session-config>

</Web-app>
-----------------------------------

e in webapps\ose\WEB-INF\classes c'è la servlet Main.class

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

public class Main extends HttpServlet {

public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String categoria = request.getParameter("categoria");
PrintWriter out = response.getWriter();

if ( categoria.equals("politica") )
{
out.println("Ti piaccie la Politica!");
}
else if ( categoria.equals("finanza") )
{
out.println("Ti piaccie la Finanza!");
}
else if ( categoria.equals("sport") )
{
out.println("Ti piaccie lo Sport!");
}
else
out.println("Non ti piace un cacchio!");

}

}
-------------------------------

Quando provo a farla andare mi da questo errore:

-------------------------------
type Status report

message /ose/MainUrl

description The requested resource (/ose/MainUrl) is not available.
-------------------------------

Mi sapete dire dove ho sbagliato? Grazie :)

kingv
01-09-2006, 01:12
guarda il log di tomcat, otterrai qualche info in più che il messaggio di errore al browser. cosa dice?

Edde
01-09-2006, 10:46
guarda il log di tomcat, otterrai qualche info in più che il messaggio di errore al browser. cosa dice?

Guarda, sono quasi sicuro che sia un errore nel file web.xml (oppure nel modo con cui invoco, dalla form, la servlet). Se sostituisco la servlet con una jsp funziona tutto.

In ogni caso, quale dei file di log dovrei vedere? L'unico in cui mi segnala la descrizione degli errori è "catalina.DATA-GIORNO" ma non me li evidenzia tutti. Ad esempio oggi ho provato a far riandare il tutto, e lì dentro non mi segnala alcun errore (nonostante da browser mi dia quello che ho già specificato).

kingv
01-09-2006, 11:43
ad occhio sembra corretto, ma non usare caratteri maiuscoli nei nomi dei tag (vedi "Web-app").
quando ti restituisce l'errore in $CATALINA_HOME/logs/catalina.out non dice niente? è strano.

Edde
01-09-2006, 11:54
ad occhio sembra corretto, ma non usare caratteri maiuscoli nei nomi dei tag (vedi "Web-app").
quando ti restituisce l'errore in $CATALINA_HOME/logs/catalina.out non dice niente? è strano.

Non ci posso credere... era la maiuscola di quel tag... :doh:
E dire che avevo fatto copia-incolla dall'esempio di html.it, quindi non ho proprio pensato che potesse esserci un errore nella struttura di quel file...

Grazie, tu non sai le imprecazioni che sono volate per colpa di quel carattere :D