(Risolto) Tomcat: dove metto i file?
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
(Risolto) Tomcat: dove metto i file?
Ciao a tutti,
ho installato Tomcat e sto provando a fare la mia prima "hello world" o poco più (good)
Ho creato una pagina in webapps/prova e l'ho chiamata pagina.html
Questo è il contenuto
Prova
Nome:
Poi, in webapps/prova/WEB-INF/classes ho messo prova.class, già compilata
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class prova extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
String parNome=request.getParameter("nome");
response.setContentType("text/html; charset)ISO08859-1");
PrintWriter out = response.getWriter();
String docType = "\n";
out.println(docType + "\n" + "\n"+
"\n"+"Hello world\n" + "Hello "+parNome+"");
}
}
Il punto è che non so come indirizzare la pagina HTML in modo che reperisca nella giusta maniera la classe (in pratica non so cosa mettere esattamente al posto delle parole che ho messo in grassetto).
Qualcuno mi sa aiutare? Se vado su http://localhost:8080/prova/pagina.html la pagina viene visualizzata, ma se clicco sul pulsante mi dice
HTTP Status 404 - /servlet/prova
type Status report
message /servlet/prova
description The requested resource (/servlet/prova) is not available.
Apache Tomcat/6.0.13
HELP ME! :'(
ho installato Tomcat e sto provando a fare la mia prima "hello world" o poco più (good)
Ho creato una pagina in webapps/prova e l'ho chiamata pagina.html
Questo è il contenuto
Prova
Nome:
Poi, in webapps/prova/WEB-INF/classes ho messo prova.class, già compilata
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class prova extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
String parNome=request.getParameter("nome");
response.setContentType("text/html; charset)ISO08859-1");
PrintWriter out = response.getWriter();
String docType = "\n";
out.println(docType + "\n" + "\n"+
"\n"+"Hello world\n" + "Hello "+parNome+"");
}
}
Il punto è che non so come indirizzare la pagina HTML in modo che reperisca nella giusta maniera la classe (in pratica non so cosa mettere esattamente al posto delle parole che ho messo in grassetto).
Qualcuno mi sa aiutare? Se vado su http://localhost:8080/prova/pagina.html la pagina viene visualizzata, ma se clicco sul pulsante mi dice
HTTP Status 404 - /servlet/prova
type Status report
message /servlet/prova
description The requested resource (/servlet/prova) is not available.
Apache Tomcat/6.0.13
HELP ME! :'(
Ultima modifica di MarKco il venerdì 1 giugno 2007, 18:36, modificato 1 volta in totale.
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
- Massimo S.
- Entusiasta Emergente

- Messaggi: 1931
- Iscrizione: giovedì 28 settembre 2006, 14:34
Re: Tomcat: dove metto i file?
Secondo me devi creare un file webapps/prova/WEB-INF/web.xml dentro al quale devi dichiarare la servlet, ovvero quale la classe e il nome della servlet.
Poi deve dichiarare anche il servlet mapping, ovvero associare il nome della servlet con l'indirizzo http su cui deve rispondere
Edit: inoltre quel
non mi piace.
Per me, o metti il percorso completo
o lo metti relativo, senza che inizia con /
Poi deve dichiarare anche il servlet mapping, ovvero associare il nome della servlet con l'indirizzo http su cui deve rispondere
Edit: inoltre quel
Codice: Seleziona tutto
action="/servlet/prova"Per me, o metti il percorso completo
Codice: Seleziona tutto
action="/prova/servlet/prova"Codice: Seleziona tutto
action="servlet/prova"
Ultima modifica di Massimo S. il venerdì 1 giugno 2007, 10:52, modificato 1 volta in totale.
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
Re: Tomcat: dove metto i file?
Grazie mille delle indicazioni!
Ho provato a seguire i vostri consigli:
nella cartella ROOT ho messo la pagina "pagina.html"
Nella cartella ROOT/WEB-INF/classes/org/miapp ho messo la classe compilata Prova.class, il cui codice è
Infine nel file ROOT/WEB-INF.xml, all'interno dei tag ho inserito
Tutto ciò ispirandomi smaccatamente alla pagina http://www.javastaff.com/article.php?st ... 9185736262 che mi avete segnalato. Per inciso, mettendo tutto come nell'esempio di suddetta pagina funziona, e andando all'indirizzo http://localhost:8080/saluto tutto quadra. Io però volevo che fosse una pagina HTML a richiamare la servlet, per questo ho inserito in più la pagina pagina.html.
Purtroppo però quando clicco sul pulsante in pagina.html (visualizzata correttamente, all'indirizzo http://localhost:8080/pagina.html) il risultato è questo
Vado a vedere il log e non dice di più
Insomma, non riesce a trovare la classe! Ma con un codice del tutto simile la classe dell'esempio di JavaStaff riusciva a trovarla!!!
Ma dov'è che sbaglio???
Ho provato a seguire i vostri consigli:
nella cartella ROOT ho messo la pagina "pagina.html"
Codice: Seleziona tutto
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01"+"Transitional//EN">
<HTML>
<HEAD>
<TITLE>Prova
</TITLE>
</HEAD>
<BODY>
<form
method="get"
action="Prova">
<h2>Nome:</h2>
<input name="nome" type="text" maxlength="40">
<input type="submit">
</form>
</BODY>
</HTML>Codice: Seleziona tutto
package org.miapp;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Prova extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
String parNome=request.getParameter("nome");
response.setContentType("text/html; charser=ISO-8859-1");
PrintWriter out = response.getWriter();
String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 " + "Transitional//EN\">\n";
out.println(docType + "<HTML>\n" + "<HEAD><TITLE>Hello World</TITLE></HEAD>\n Hello "+parNome+"</BODY></HTML>");
}
}Codice: Seleziona tutto
<servlet>
<servlet-name>org.miapp.Prova</servlet-name>
<servlet-class>org.miapp.Prova</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>org.miapp.Prova</servlet-name>
<url-pattern>/Prova</url-pattern>
</servlet-mapping>Purtroppo però quando clicco sul pulsante in pagina.html (visualizzata correttamente, all'indirizzo http://localhost:8080/pagina.html) il risultato è questo
Codice: Seleziona tutto
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:595)
root cause
java.lang.NoClassDefFoundError: org/miapp/Prova (wrong name: Prova)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:595)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
Codice: Seleziona tutto
Jun 1, 2007 5:06:07 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet org.miapp.Prova
java.lang.NoClassDefFoundError: org/miapp/Prova (wrong name: Prova)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)Ma dov'è che sbaglio???
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Re: Tomcat: dove metto i file?
credo che nella pagina html tu debba mettere /Prova anziche Prova.
Ma l'esempio che hai riportato è quello da te modificato, vero? perche' tra le mappature della servlet nel web.xml non trovo nessun riferimento al path /saluto.
ciao
Ma l'esempio che hai riportato è quello da te modificato, vero? perche' tra le mappature della servlet nel web.xml non trovo nessun riferimento al path /saluto.
ciao
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
Re: Tomcat: dove metto i file?
Non cambia nulla, purtroppo :'(prampa ha scritto: credo che nella pagina html tu debba mettere /Prova anziche Prova.
Sì, intendevo dire che nell'esempio di base, quello con la classe che poi viene mappata in /saluto, tutto funziona. Nella mia, mappata in /Prova, niente da fare... nemmeno se invoco la classe direttamente (simulando il passaggio di parametro col GET)Ma l'esempio che hai riportato è quello da te modificato, vero? perche' tra le mappature della servlet nel web.xml non trovo nessun riferimento al path /saluto.
ciao
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
Re: Tomcat: dove metto i file?
Passo avanti!!!!!! 
Ho tolto il passaggio del parametro e, chiamando la classe da http://localhost:8080/Prova, funziona tutto! Ora devo solo capire cosa non funziona nel passaggio dalla pagina alla servlet.
...ma la pagina HTML è normale che sia in ROOT/? Non è che magari va anche lei in qualche sottocartella? ::)
(posso dire che questa struttura a sottocartelle è penosa? (bad))
Ho tolto il passaggio del parametro e, chiamando la classe da http://localhost:8080/Prova, funziona tutto! Ora devo solo capire cosa non funziona nel passaggio dalla pagina alla servlet.
...ma la pagina HTML è normale che sia in ROOT/? Non è che magari va anche lei in qualche sottocartella? ::)
(posso dire che questa struttura a sottocartelle è penosa? (bad))
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
Re: Tomcat: dove metto i file?
FUNZIONA!!!!
e non ho cambiato assolutamente NIENTE!
Probabilmente il server ha i suoi tempi tecnici in cui ricarica le pagine modificate, e non vedevo istantaneamente gli effetti di ogni modifica che effettuavo. Questo ovviamente non ha facilitato la risoluzione del problema. Ad ogni modo tutto funziona con la modifica che mi hai suggerito, cioè /Prova al posto di Prova.
Grazie mille!
e non ho cambiato assolutamente NIENTE!
Probabilmente il server ha i suoi tempi tecnici in cui ricarica le pagine modificate, e non vedevo istantaneamente gli effetti di ogni modifica che effettuavo. Questo ovviamente non ha facilitato la risoluzione del problema. Ad ogni modo tutto funziona con la modifica che mi hai suggerito, cioè /Prova al posto di Prova.
Grazie mille!
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Re: Tomcat: dove metto i file?
meglio cosi', pero' molto probabilmente nel frattempo forse hai restartato tomcat: e' per questo che funziona, non ci sono tempi tecnici di ricarica. Ora che hai visto che funziona, ti consiglio di cercare con google qualcosa riguardo la creazione di applicazioni web, la loro struttura e le directory di cui sono composte con i vari file di configurazione da impostare, ricerca con google informazioni sul pattern MVC per passare poi all'uso di struts come framework di sviluppo. Un passo dopo l'altro....MarKco ha scritto: FUNZIONA!!!!
e non ho cambiato assolutamente NIENTE!
Probabilmente il server ha i suoi tempi tecnici in cui ricarica le pagine modificate, e non vedevo istantaneamente gli effetti di ogni modifica che effettuavo. Questo ovviamente non ha facilitato la risoluzione del problema. Ad ogni modo tutto funziona con la modifica che mi hai suggerito, cioè /Prova al posto di Prova.
Grazie mille!![]()
ciao
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
Re: Tomcat: dove metto i file?
Hai ragione, avevo riavviato nel frattempo ;-)prampa ha scritto: meglio cosi', pero' molto probabilmente nel frattempo forse hai restartato tomcat: e' per questo che funziona, non ci sono tempi tecnici di ricarica.
Grazie dei suggetimenti! Al momento sto preparando l'esame di basi di dati, quindi imparerò lo stretto necessario perchè devo concentrarmi anche sugli altri esami che devo dareOra che hai visto che funziona, ti consiglio di cercare con google qualcosa riguardo la creazione di applicazioni web, la loro struttura e le directory di cui sono composte con i vari file di configurazione da impostare, ricerca con google informazioni sul pattern MVC per passare poi all'uso di struts come framework di sviluppo. Un passo dopo l'altro....
ciao
Poi però, dato che l'argomento mi interessa, seguirò i tuoi consigli!
ciao ciao, e grazie ancora!
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Re: (Risolto) Tomcat: dove metto i file?
esame base dati...benissimo...se servono notizie chiedi. In questo forum c'e' molta gente in gamba e con esperienza....
ciao
ciao
- MarKco
- Prode Principiante
- Messaggi: 232
- Iscrizione: venerdì 19 gennaio 2007, 8:10
- Località: Legnago - Verona
- Contatti:
Re: (Risolto) Tomcat: dove metto i file?
Grazie, ne approfitto subito allora! ;-)prampa ha scritto: esame base dati...benissimo...se servono notizie chiedi. In questo forum c'e' molta gente in gamba e con esperienza....
ciao
MarKco
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Triste e' l'uomo che ama le cose solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)
Chi c’è in linea
Visualizzano questa sezione: Google [Bot] e 2 ospiti
