PDA

View Full Version : [java] servlet - problema col tomcat


Andreak
09-01-2006, 16:14
Stiamo cercando di fare una servlet, e tutto andava bene finché non abbiamo creato delle sottocartelle nella WEB-INF/classes per mettere ordine nei package... pensiamo che il problema sia nel file web.xml ma abbiamo provato ualunque path e non funziona mai.

L'errore è questo:
http://img222.imageshack.us/img222/6331/error0jk.gif (http://imageshack.us)

Questa è la struttura delle cartelle:
http://img222.imageshack.us/img222/2538/folder9jz.gif (http://imageshack.us)

E questo è il pezzo importante del file web.xml.

<web-app>

<!-- JSPC servlet mappings start -->

<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>bin.org.fpc.sudoku.login.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>bin.org.fpc.sudoku.login.RegisterServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/RegisterServlet</url-pattern>
</servlet-mapping>

<!-- JSPC servlet mappings end -->

</web-app>


Come vanno cambiati i path?

pinok
09-01-2006, 16:26
Versione di Tomcat?
Comunque, avevate mai usato una servlet?
Se si, non saprei dirti al momento.
Se no, probabilmente dovete abilitare l'invoker per le servlet nel web.xml che si trova nella directory conf di Tomcat; mi pare sia da decommentare in due punti.

texerasmo
09-01-2006, 16:26
nel web.xml di tomcat hai deccommentato la riga riguardante le servlet?

pinok
09-01-2006, 16:28
:winner: Sono arrivato primo sul filo di lana ;) !

P.S.: dopo la modifica avete riavviato tomcat, vero ?

Andreak
09-01-2006, 16:34
Prima volta che usiamo le servlet... comunque andava TUTTO finché i file erano direttamente in WEB-INF/classes, facendo sottocartelle (e inserendo i relativi package nei sorgenti) e modificando il file xml non va più nulla. Riavviato tomcat N-mila volte °_°

Andreak
09-01-2006, 16:43
UP

kingv
09-01-2006, 16:45
dentro la directory WEB-INF/classes c'e' una directory "bin" che non dovrebbe esserci, toglila e metti "org" direttamente dentro "classes"

pinok
09-01-2006, 16:45
Allora dovete decommentare, se non ricordo male, queste righe in conf/web.xml
Circa verso la riga 63:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

(avendole entrambe decommentate, non ricordo se erano quelle sopra o quelle sotto verso la riga 92, comunque fai in modo che non ci sia il commento né in una, né nell'altra parte)

<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

pinok
09-01-2006, 16:48
dentro la directory WEB-INF/classes c'e' una directory "bin" che non dovrebbe esserci, toglila e metti "org" direttamente dentro "classes"
Scusa, perché ?
Non ha seguito lo standard nell'organizzazione dei package, ma visto che poi in web.xml specifica bin.org.fpc.sudoku.login.LoginServlet a priori non è sbagliato.

Sempre che, in cima a LoginServlet, abbia dichiarato:

package bin.org.fpc.sudoku.login;

LO HAI FATTO, VERO ;) ??

kingv
09-01-2006, 16:54
Scusa, perché ?



leggi il messaggio di errore, te lo indica lui dove dice "wrong name"

kingv
09-01-2006, 16:58
ma visto che poi in web.xml specifica bin.org.fpc.sudoku.login.LoginServlet a priori non è sbagliato.


ho visto ora cosa ha messo nel web.xml, probabilmente si è dimenticato di riportare tutto il package nella dichiarazione all'interno della servlet.

in ogni caso non è molto standard iniziare con "bin" ;)

pinok
09-01-2006, 17:04
leggi il messaggio di errore, te lo indica lui dove dice "wrong name"
Hai ragione, sembrerebbe di si...
In questo caso deve correggere non solo la struttura su disco, ma anche il web.xml in WEB-INF.

Oppure aggiunge solo bin. davanti alla dichiarazione del package.

pinok
09-01-2006, 17:05
in ogni caso non è molto standard iniziare con "bin" ;)
Perfettamente d'accordo.

Andreak
09-01-2006, 18:25
Perfettamente d'accordo.
Si perfetto , abbiamo ricambiato tutto e eclipse si è accorto che stiamo creado una servlet, funziona tutto come prima.....