Newsgroup: it.comp.java
Titolo: Scrivere una servlet

Sto tentando di scrivere una servlet con Eclipse (e' la prima volta
che scrivo una servlet).
Ho letto l'help ma non riesco a venirne a capo, qualcuno puo' dirmi
come devo fare?
Il file WAR e il file "web.xml" vengono creati automaticamente da
Eclipse?
A quanto ho capito il file "web.xml" e' sempre necessario, e' sempre
necessario anche il file WAR? Voglio dire i dati (come "web.xml" e i
file ".class") devono per forza essere compressi in un file WAR o
possono anche NON essere compressi?


Cercati un tutorial o un manuale su internet.
O comprane uno.
Non puoi imparare senza usarli.
-- 
Andrea Francia
http://andreafrancia.blogspot.com/2008/06/relazioni-molti-molti-con-jpa.html


possono anche NON essere compressi
Alex


Tempo fa' ho comprato un libro che tratta anche delle servlet, pero'
nel libro non c'e' scritto come scrivere servlet con Eclipse.
Ho selezionato la perspective "J2EE" e ho creato un "Dynamic Web
Project" (ho fatto bene?).
Andando sopra il progetto (nel pannello "Project Explorer") e cliccando
con il tasto destro del mouse e selezionando "New -> Servlet" ho
creato lo scheletro di una servlet (finora va bene?).
Quando provo a lanciare la servlet (selezionando "Run on Server") mi
appare una finestra intitolata "Define a New Server"; seleziono
"Tomcat v5.0 Server" e dopo clicco su "Next >", a questo punto mi
appare la finestra intitolata "Tomcat Server", nel campo di testo
intitolato "Tomcat installation directory" devo scegliere una cartella
cliccando sul bottone "Browse..." ma qualunque cartella selezioni mi
appare il messaggio d'errore "The Tomcat installation directory is
not correct. It does not point to a valid Tomcat installation".
Ho fatto una ricerca sull'hard-disk di tutte le cartelle contenenti
"tomcat" ma nessuna di quelle cartella va bene, che cartella devo
selezionare? Che estenzione ha il file di installazione di Tomcat?

 come devo fare?
http://www.java-tips.org/java-tutorials/tutorials/introduction-to-java-servlets-with-eclipse.html
in ogni caso, non puoi brancolare nel buio totale di un argomento e
pretendere di venirne a capo a forza di chiedere aiutini sul
newsgroup. questo strumento ti sarà utile quando potrai porre delle
domande precise, perchè nessuno qui ha tempo e voglia di organizzarti
quel corso di cui avresti bisogno.

 come devo fare?
http://www.java-tips.org/java-tutorials/tutorials/introduction-to-java-servlets-with-eclipse.html
Ho letto il tutorial, ho sempre lo stesso problema, non riesco a
trovare la cartella di installazione di Tomcat.
Qualcuno puo' dirmi che estenzione ha il file di installazione di
Tomcat? Provo a fare una ricerca sull'hard-disk.
Io uso "EasyEclipse Server Java", in questa distribuzione di Eclipse il
plugin di Tomcat e' gia' compreso nella distribuzione (quindi non ho
dovuto fare il download da Internet).

 dovuto fare il download da Internet).
il plugin di tomcat NON è il tomcat...

 dovuto fare il download da Internet).
il plugin di tomcat NON è il tomcat...
Forse mi sono espresso male, su "EasyEclipse Server Java" c'e' un menu
intitolato "Tomcat" con le sotto-voci "Avvia Tomcat", "Ferma Tomcat" e
"Riavvia Tomcat".

 Forse mi sono espresso male,
no, forse sono io che non sono stato abbastanza chiaro.
il plugin *NON* è il tomcat ma solo un componente che ti serve per
controllare una istallazione di tomcat da dentro eclipse.
quindi se vuoi andare avanti scarichi e installi il tomcat, altrimenti
puoi sempre rimanere della tua convinzione.

 Forse mi sono espresso male,
no, forse sono io che non sono stato abbastanza chiaro.
il plugin *NON* è il tomcat ma solo un componente che ti serve per
controllare una istallazione di tomcat da dentro eclipse.
quindi se vuoi andare avanti scarichi e installi il tomcat, altrimenti
puoi sempre rimanere della tua convinzione.
Comunque puoi dirmi che estenzione ha il file di installazione di
Tomcat?

 Tomcat?
Perché ti serve questa informazione?
Se è un installer sarà .exe
Se è un archivio sarà .zip o qualcosa di simile.
-- 
Andrea Francia
http://www.andreafrancia.it/

 Tomcat?
ascolta... se fai un'altra sola domanda prima di aver scaricato e 
installato quel fottutissimo tomcat vengo lì e ti prendo a picconate il 
pc...
-- 
? Fino all'anno scorso avevo un solo difetto. Ero presuntuoso.
http://softvalley.blogspot.com
http://www.flickr.com/photos/marko_po/

> puoi sempre rimanere della tua convinzione.
Ho scaricato Tomcat.
Adesso Tomcat mi viene riconosciuto, quando seleziono la voce "Avvia
Tomcat" nel pannello in basso "Servers" mi appare la scritta che il
server e' partito.
Ho provato a lanciare la seguente servlet ma ottengo questa finestra:
HTTP Status 404 -
/ProvaDynamicWebProject/WEB-INF/classes/ProvaServlet.java
--------------------------------------------------------------------
type: Status report
message: /ProvaDynamicWebProject/WEB-INF/classes/ProvaServlet.java
description: The requested resource 
(/ProvaDynamicWebProject/WEB-INF/classes/ProvaServlet.java) is not 
available.
--------------------------------------------------------------------
Apache Tomcat/5.5.26
====================================================================
Testo della servlet:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class for Servlet: ProvaServlet
 *
 */
 public class ProvaServlet extends javax.servlet.http.HttpServlet implements 
javax.servlet.Servlet {
    /* (non-Java-doc)
  * @see javax.servlet.http.HttpServlet#HttpServlet()
  */
 public ProvaServlet() {
  super();
 }
 /* (non-Java-doc)
  * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, 
HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  response.setContentType("text/html");
  String x;
  x="<HTML>"+"<BODY>\n"+"Ciao"+"</BODY>"+"</HTML>";
  PrintWriter out=response.getWriter();
  out.println(x);
  out.flush();
 }
 /* (non-Java-doc)
  * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, 
HttpServletResponse response)
  */
 /*
 protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  return;
 }
 */
}

 /ProvaDynamicWebProject/WEB-INF/classes/ProvaServlet.java
prova qui:
http://localhost:8080/ProvaDynamicWebProject/ProvaServlet



Su Firefox mi appare la seguente finestra:
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 
ProvaServlet
 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:874) 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 cause:java.lang.Error: Unresolved compilation problems: The import javax.servlet cannot be resolved The import javax.servlet cannot be resolved The import javax.servlet cannot be resolved javax.servlet cannot be resolved to a type javax.servlet 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 ProvaServlet.<init>(ProvaServlet.java:6) 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:874) 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.26 logs.Apache Tomcat/5.5.26

 Su Firefox mi appare la seguente finestra:
Le prime cose da fare quando incontri un errore che non capisci č:
  * leggere la documentazione relativa all'errore
  * cercare su google informazioni su quell'errore
Poi se non ne riesci venire a capo puoi chiedere in un newsgroup 
chiarimenti.
Pero devi dire cosa non capisci, non puoi solo incollare l'errore e 
aspettare che qualcuno con arti divinatorie capisca cosa vuoi sapere o 
che qualcuno venga a risolverti il problema senza conoscere il codice 
che hai scritto ne come hai configurato il sistema.
