Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Errore con servlet

68 views
Skip to first unread message

Bracco Baldo

unread,
Dec 14, 2009, 7:16:42 PM12/14/09
to
Sto provando a scrivere con Eclipse una servlet ma ottengo sempre la
seguente finestra di errore:

http://localhost:8080/ProvaDynamicWebProject/WEB-INF/classes/HelloWorld.java

HTTP Status 404 -

--------------------------------------------------------------------------------

type Status report

message

description The requested resource () is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.28

**********************************************************************

Di seguito descrivo il problema:

Ho scaricato Tomcat 5.5.28 e ho settato le variabili d'ambiente
CATALINA_HOME a "c:\Tomcat\apache-tomcat-5.5.28" e JRE_HOME a
"c:\Programmi\EasyEclipse Server Java 1.2.2.2\jre"

- poi da Eclipse ho selezionato la perspective "J2EE"
- ho cliccato con il tasto destro del mouse su "Project Explorer" poi
su "New" e poi su "Dynamic Web Project"
- nella finestra che appare ho scritto "ProvaDynamicWebProject" e ho
cliccato su "Finish"
- poi ho cliccato con il tasto destro del mouse su "ProvaDynamicWebProject"
e poi su "New" e poi su "Servlets"
- ho chiamato la classe "HelloWorld" e ho scritto la classe che riporto
alla fine di questo messaggio
- quando provo a lanciare il programma (Run As -> Run on Server) mi
appare una finestra con scritto "Could not find a client that is able
to launch the selection"
- le volte dopo che ri-provo a lanciare il programma mi appare una
finestra con una checkbox con scritto "Update context root for Web
module ProvaDynamicWebProject"
- sia che attivo che disattivo la checkbox quando clicco su "Finish"
mi appare la finestra d'errore scritta all'inizio di questo messaggio.

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

public class HelloWorld 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("</body>");
out.println("</html>");
out.flush();
}

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


n.n.

unread,
Dec 15, 2009, 2:28:55 AM12/15/09
to
Bracco Baldo ha scritto:

> Di seguito descrivo il problema:

> Ho scaricato Tomcat 5.5.28 e ho settato le variabili d'ambiente

> CATALINA_HOME a "c:Tomcatapache-tomcat-5.5.28" e JRE_HOME a
> "c:ProgrammiEasyEclipse Server Java 1.2.2.2jre"

Catalina home e jre home non servono
quella che serve e' JAVA_HOME

settata quella prova a
collegarti a
localhost:8080
e cosi' sai se e' acceso il gatto.

Dopo di che
vai nella cartella del tomcat e verifica che sia deployata la tua servlet
cioe' sotto
...webapp/
ci deve essere qualcosa di tuo e la tua servlet

infine la chiave di tutto e' nel file
../WEB-INF/web.xml

studiati le -semplicissime- regole del web-xml o eventualmente postacelo
che lo verifichiamo

ciauz Nicola

--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it


Manuel T

unread,
Dec 15, 2009, 2:30:29 AM12/15/09
to
n.n. wrote:

> e cosi' sai se e' acceso il gatto.

Lo hai invocato! Ora arriva lui e le sue utility utilissime e FREE. :)

yossarian

unread,
Dec 15, 2009, 3:56:15 AM12/15/09
to

Dr.Ugo Gagliardelli

unread,
Dec 15, 2009, 6:49:39 AM12/15/09
to
il 15.12.2009 1.16, Scrive Bracco Baldo 43247024:

> Sto provando a scrivere con Eclipse una servlet ma ottengo sempre la
> seguente finestra di errore:
>
>
>
> http://localhost:8080/ProvaDynamicWebProject/WEB-INF/classes/HelloWorld.java
>
> HTTP Status 404 -
HelloWorld.java ha odore di sorgente Java, non di servlet.
E comunque non puoi accedere direttamente al percorso /WEB-INF.
se nel web.xml ad esempio hai:

<servlet>
<display-name>HelloWorld</display-name>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>tuo.package.HelloWorld</servlet-class>
</servlet>
allora sara' necessario utilizzare l'url:
http://localhost:8080/ProvaDynamicWebProject/HelloWorld
oppure
http://localhost:8080/HelloWorld
se non viene indicato alcun contesto.

Bracco Baldo

unread,
Dec 15, 2009, 10:27:08 AM12/15/09
to
>> http://localhost:8080/ProvaDynamicWebProject/WEB-INF/classes/HelloWorld.java
>>
>> HTTP Status 404 -
> HelloWorld.java ha odore di sorgente Java, non di servlet.
> E comunque non puoi accedere direttamente al percorso /WEB-INF.
> se nel web.xml ad esempio hai:
>
> <servlet>
> <display-name>HelloWorld</display-name>
> <servlet-name>HelloWorld</servlet-name>
> <servlet-class>tuo.package.HelloWorld</servlet-class>
> </servlet>
> allora sara' necessario utilizzare l'url:
> http://localhost:8080/ProvaDynamicWebProject/HelloWorld
> oppure
> http://localhost:8080/HelloWorld
> se non viene indicato alcun contesto.

Tutte le volte che lancio la servlet mi appare una finestra con una


checkbox con scritto "Update context root for Web module

ProvaDynamicWebProject".

Ho provato a cambiare l'URL in
"http://localhost:8080/ProvaDynamicWebProject/HelloWorld"
ma ottengo la seguente finestra d'errore.
(dopo la finestra riporto il file web.xml)

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 instantiating servlet class HelloWorld
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) java.lang.Thread.run(Thread.java:595)root causejava.lang.Error: Unresolved compilation problems: The import javax.servlet cannot be resolved The import javax.servlet cannot be resolved HttpServlet cannot be resolved to a type HttpServletRequest cannot be resolved to a type HttpServletResponse cannot be resolved to a type ServletException cannot be resolved to a type HttpServletRequest cannot be resolved to a type HttpServletResponse cannot be resolved to a type ServletException cannot be resolved to a type HelloWorld.<init>(HelloWorld.java:2) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:494) java.lang.Class.newInstance0(Class.java:350) java.lang.Class.newInstance(Class.java:303) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) java.lang.Thread.run(Thread.java:595)note The full stack trace of the root cause is available in the ApacheTomcat/5.5.28 logs.--------------------------------------------------------------------------------Apache Tomcat/5.5.28***************************************************************************************************************************************************************************************************************<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> ProvaDynamicWebProject</display-name> <servlet> <description> </description> <display-name> HelloWorld</display-name> <servlet-name>HelloWorld</servlet-name> <servlet-class> HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list></web-app>

Bracco Baldo

unread,
Dec 15, 2009, 10:40:40 AM12/15/09
to
>> http://localhost:8080/ProvaDynamicWebProject/WEB-INF/classes/HelloWorld.java
>>
>> HTTP Status 404 -
> HelloWorld.java ha odore di sorgente Java, non di servlet.
> E comunque non puoi accedere direttamente al percorso /WEB-INF.
> se nel web.xml ad esempio hai:
>
> <servlet>
> <display-name>HelloWorld</display-name>
> <servlet-name>HelloWorld</servlet-name>
> <servlet-class>tuo.package.HelloWorld</servlet-class>
> </servlet>
> allora sara' necessario utilizzare l'url:
> http://localhost:8080/ProvaDynamicWebProject/HelloWorld
> oppure
> http://localhost:8080/HelloWorld
> se non viene indicato alcun contesto.

Tutte le volte che lancio la servlet mi appare una finestra con una


checkbox con scritto "Update context root for Web module

ProvaDynamicWebProject".

Ho provato a cambiare l'URL in

http://localhost:8080/ProvaDynamicWebProject/HelloWorld

ma ottengo sempre una finestra d'errore.


Siccome il file e' lungho il testo viene spezzato, quindi nel prossimo
messaggio riporto separatamente la finestra d'errore e nel messaggio
dopo riporto separatamente il file web.xml


Bracco Baldo

unread,
Dec 15, 2009, 10:42:02 AM12/15/09
to
*********************************************************************
************************* Finestra d'errore *************************
*********************************************************************

Bracco Baldo

unread,
Dec 15, 2009, 10:43:17 AM12/15/09
to
*********************************************************************
****************************** web.xml ******************************
*********************************************************************

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
ProvaDynamicWebProject</display-name>
<servlet>
<description>
</description>

<display-name>
HelloWorld</display-name>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>

Dr.Ugo Gagliardelli

unread,
Dec 15, 2009, 12:07:54 PM12/15/09
to
il 15.12.2009 16.42, Scrive Bracco Baldo 43247024:

> *********************************************************************
> ************************* Finestra d'errore *************************
> *********************************************************************
>
> HTTP Status 500 -
>
> --------------------------------------------------------------------------------
>
L'errore 500 indica che la servlet ha lanciato un'eccezione o e'
terminata in errore. Infatti nello stack-trace c'e' anche scritto:

javax.servlet.ServletException: Error instantiating servlet class HelloWorld
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)


java.lang.Thread.run(Thread.java:595)root cause

java.lang.Error: Unresolved compilation problems:

The import javax.servlet cannot be resolved
The import javax.servlet cannot be resolved
HttpServlet cannot be resolved to a type
HttpServletRequest cannot be resolved to a type
HttpServletResponse cannot be resolved to a type
ServletException cannot be resolved to a type
HttpServletRequest cannot be resolved to a type
HttpServletResponse cannot be resolved to a type
ServletException cannot be resolved to a type

HelloWorld.<init>(HelloWorld.java:2)

sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

java.lang.reflect.Constructor.newInstance(Constructor.java:494)
java.lang.Class.newInstance0(Class.java:350)

Sembrerebbe che la classe non sia stata compilata.

Bracco Baldo

unread,
Dec 16, 2009, 8:51:04 AM12/16/09
to
> L'errore 500 indica che la servlet ha lanciato un'eccezione o e' terminata
> in errore. Infatti nello stack-trace c'e' anche scritto:
>
> javax.servlet.ServletException: Error instantiating servlet class
> HelloWorld
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> ...
> ...

> Sembrerebbe che la classe non sia stata compilata.

PER FAVORE potrebbe descrivermi PASSO PASSO come fare per creare una
servlet con Eclipse?
La prego di non tralasciare neanche le cose piu' ovvie.

Io uso "EasyEclipse Server Java", che e' una distribuzione di Eclipse
con gia' compresi dei plug-in (tra cui anche Tomcat) per lo sviluppo
di applicazioni web.
Grazie.


n.n

unread,
Dec 16, 2009, 9:00:35 AM12/16/09
to
Il 16 Dic 2009, 14:51, "Bracco Baldo" <nk...@tiscali.it> ha scritto:

> Io uso "EasyEclipse Server Java", che e' una distribuzione di Eclipse
> con gia' compresi dei plug-in (tra cui anche Tomcat) per lo sviluppo
> di applicazioni web.
> Grazie.

Scaricati il Galileo standard che ha gia' tutto ed e' una bomba

ciauz N

--------------------------------
Inviato via http://arianna.libero.it/usenet/

n.n

unread,
Dec 16, 2009, 9:00:45 AM12/16/09
to
Il 16 Dic 2009, 14:51, "Bracco Baldo" <nk...@tiscali.it> ha scritto:

> Io uso "EasyEclipse Server Java", che e' una distribuzione di Eclipse
> con gia' compresi dei plug-in (tra cui anche Tomcat) per lo sviluppo
> di applicazioni web.
> Grazie.

Scaricati il Galileo standard che ha gia' tutto ed e' una bomba

rootkit

unread,
Dec 16, 2009, 10:38:26 AM12/16/09
to
Il Wed, 16 Dec 2009 14:51:04 +0100, Bracco Baldo ha scritto:

> PER FAVORE potrebbe descrivermi PASSO PASSO come fare per creare una
> servlet con Eclipse?
> La prego di non tralasciare neanche le cose piu' ovvie.

http://www.youtube.com/watch?v=-l0CFxdroTE
http://www.youtube.com/watch?v=JyK9KzkQnQo

ma soprattutto:
http://tinyurl.com/ycmtncf

Bracco Baldo

unread,
Dec 16, 2009, 10:56:06 AM12/16/09
to
> Scaricati il Galileo standard che ha gia' tutto ed e' una bomba


Cos'e' Galileo? Un insieme di plug-in? Una distribuzione di Eclipse?
Grazie del consiglio ma preferirei continuare a usare EasyEclipse,
credo che abbia gia' tutto quello che serve per creare applicazioni web
(Hibernate, JBoss, Spring, ...) (che non so' ancora cosa sono)

E poi io ho sempre la banda "stretta", ho dovuto far scaricare
EasyEclipse (214 MB) da un amico e poi far masterizzare il file su un
CD.


Bracco Baldo

unread,
Dec 16, 2009, 10:59:09 AM12/16/09
to
>> PER FAVORE potrebbe descrivermi PASSO PASSO come fare per creare una
>> servlet con Eclipse?
>> La prego di non tralasciare neanche le cose piu' ovvie.
>
> http://www.youtube.com/watch?v=-l0CFxdroTE
> http://www.youtube.com/watch?v=JyK9KzkQnQo
>
> ma soprattutto:
> http://tinyurl.com/ycmtncf


Grazie del consiglio ma io ho sempre la banda "stretta", quindi non
posso vedere YouTube.


rootkit

unread,
Dec 16, 2009, 11:09:33 AM12/16/09
to
Il Wed, 16 Dec 2009 16:59:09 +0100, Bracco Baldo ha scritto:

>> ma soprattutto:
>> http://tinyurl.com/ycmtncf
>
>
> Grazie del consiglio ma io ho sempre la banda "stretta", quindi non
> posso vedere YouTube.

il terzo link resta valido.

Bracco Baldo

unread,
Dec 16, 2009, 11:54:08 AM12/16/09
to
>>> ma soprattutto:
>>> http://tinyurl.com/ycmtncf
>>
>>
>> Grazie del consiglio ma io ho sempre la banda "stretta", quindi non
>> posso vedere YouTube.
>
> il terzo link resta valido.


Su Google ho cercato "eclipse web application tutorial" e ho cliccato
sul primo riferimento "Web Tools Platform", ma per me che ho la banda
stretta la pagina ci mette troppo tempo per essere caricata (e non so'
neanche quante pagine sono); qualcuno che gia' sa come creare Servlet
con Eclipse puo' spiegarmi PASSO PASSO come fare per favore?


rootkit

unread,
Dec 16, 2009, 12:09:36 PM12/16/09
to
Il Wed, 16 Dec 2009 17:54:08 +0100, Bracco Baldo ha scritto:

> Su Google ho cercato "eclipse web application tutorial" e ho cliccato
> sul primo riferimento "Web Tools Platform", ma per me che ho la banda
> stretta la pagina ci mette troppo tempo per essere caricata (e non so'
> neanche quante pagine sono); qualcuno che gia' sa come creare Servlet
> con Eclipse puo' spiegarmi PASSO PASSO come fare per favore?

spiacente, tu hai la banda stretta e io non ho tempo da dedicare a
scrivere tutorial (già scritti).

Dr.Ugo Gagliardelli

unread,
Dec 16, 2009, 1:13:58 PM12/16/09
to
il 16.12.2009 14.51, Scrive Bracco Baldo 43502112:
Veramente EasyEclipse non lo conosco. Attualmente sto usando Ganymede
che e' la versione di eclipse precedente a quella attuale (Galileo), in
pratica la versione 3.4.
Comunque si fa cosi'
new project, other, web, Dynamic Web project.
Nel wizard specifico:
il nome,
il target runtime se non l'hai gia' usa il bottone new io scelgo tomcat
v5.5 (ho quello) ed indico la directory in cui e' installato, con il
bottone browse. Il resto vmi va bene e quindi clikko finish.
Nella directory src creo un package (hello in questo caso) ci creo
dentro la classe HelloWorld (copio/incollo it tuo codice) salvo.
Clicco destro suservlet del Deployment Descriptor ( che sarebbe poi il
web.xml) scelgo new, scelgo "Use an existing class or jsp" e con browse
scelgo la classe HelloWorld non specifico altro e quindi clicco finish.
Poi clikko destro su HelloWorld scelgo "run as" scelgo "run on server".
La prima volta mi propone i server configurati e chekko "Always use ..."
cosi' non me lo chiedera' piu'. Altrimenti ho sempre la possibilita' di
configurare un nuovo server (tramite add o configure) se non lo avessi
fatto all'atto della creazione del progetto, cosa sconsigliabile, non
farlo intendo, in quanto specificando il runtime environment, me lo
aggiunge tra i jar inclusi nel class-path. Clikko quindi su finish e mi
si apre il browser interno con scritto "Hello World".

Dr.Ugo Gagliardelli

unread,
Dec 16, 2009, 1:15:08 PM12/16/09
to
il 16.12.2009 17.54, Scrive Bracco Baldo 43502112:
Lᅵho fatto sopra, ma non so se l'easy eclipse sia uguale al mio.

Bracco Baldo

unread,
Dec 16, 2009, 2:32:05 PM12/16/09
to
> Veramente EasyEclipse non lo conosco. Attualmente sto usando Ganymede che
> e' la versione di eclipse precedente a quella attuale (Galileo), in
> pratica la versione 3.4.
> Comunque si fa cosi'
> new project, other, web, Dynamic Web project.
> Nel wizard specifico:
> il nome,
> il target runtime se non l'hai gia' usa il bottone new io scelgo tomcat
> v5.5 (ho quello) ed indico la directory in cui e' installato, con il
> bottone browse. Il resto vmi va bene e quindi clikko finish.
> Nella directory src creo un package (hello in questo caso) ci creo dentro
> la classe HelloWorld (copio/incollo it tuo codice) salvo.
> Clicco destro suservlet del Deployment Descriptor ( che sarebbe poi il
> web.xml) scelgo new, scelgo "Use an existing class or jsp" e con browse
> scelgo la classe HelloWorld non specifico altro e quindi clicco finish.
> Poi clikko destro su HelloWorld scelgo "run as" scelgo "run on server".
> La prima volta mi propone i server configurati e chekko "Always use ..."
> cosi' non me lo chiedera' piu'. Altrimenti ho sempre la possibilita' di
> configurare un nuovo server (tramite add o configure) se non lo avessi
> fatto all'atto della creazione del progetto, cosa sconsigliabile, non
> farlo intendo, in quanto specificando il runtime environment, me lo
> aggiunge tra i jar inclusi nel class-path. Clikko quindi su finish e mi si
> apre il browser interno con scritto "Hello World".


Ho seguito le sue istruzioni e la servlet funziona, GRAZIE.
Ora devo studiarci sopra.


Dr.Ugo Gagliardelli

unread,
Dec 17, 2009, 4:42:06 AM12/17/09
to
il 16.12.2009 20.32, Scrive Bracco Baldo 38377736:

>> Veramente EasyEclipse non lo conosco. Attualmente sto usando Ganymede che
>> e' la versione di eclipse precedente a quella attuale (Galileo), in
>> pratica la versione 3.4.
>> Comunque si fa cosi'
>> new project, other, web, Dynamic Web project.
>> Nel wizard specifico:
>> il nome,
[...]

>
> Ho seguito le sue istruzioni e la servlet funziona, GRAZIE.
> Ora devo studiarci sopra.
>
>
Bene, non era difficile, no?
Un consiglio, nel caso che hai esposto:

public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

bla bla bla


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

utilizzi sia il metodo doGet che il metodo doPost che pero' richiama a
sua volta il metodo doGet. Se l'effettiva esigenza e' quella di onorate
sia i due metodi HTTP GET e POST, avresti potuto utilizzare
equivalentemente il solo metodo:

void service(HttpServletRequest request, HttpServletResponse response)

con effetti identici.

0 new messages