Newsgroup: it.comp.java
Titolo: Tomcat non trova la servlet

Uso Netbeans5b
ho settato cosi il mio web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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
">
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>tesi.galileo.login.LoginServlet</servlet-class>
    <init-param>
      <param-name>welcomePage</param-name>
      <param-value>/Secure/welcome.jsp</param-value>
    </init-param>
    <init-param>
      <param-name>loginPage</param-name>
      <param-value>/login.jsp</param-value>
    </init-param>
    <init-param>
      <param-name>userDataManager</param-name>
<param-value>tesi.galileo.login.SimpleUserDataManager</param-value>
    </init-param>
  </servlet>
  <servlet>
    <servlet-name>LogoutServlet</servlet-name>
    <servlet-class>tesi.galileo.login.LogoutServlet</servlet-class>
    <init-param>
      <param-name>goodbyePage</param-name>
      <param-value>goodbye.jsp</param-value>
    </init-param>
  </servlet>
  <servlet>
    <servlet-name>FlifoServlet</servlet-name>
<servlet-class>tesi.galileo.development.FlifoServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>LogoutServlet</servlet-name>
    <url-pattern>/LogoutServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>FlifoServlet</servlet-name>
    <url-pattern>/FlifoServlet</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>
            30
        </session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.html</location>
  </error-page>
</web-app>
il punto è che servlet non mi vede la LogoutServlet
infatti richiamandola
<form action=LogoutServlet method="POST">
mi da un errore del tipo
type Status report
message /login_2/Secure/LogoutServlet
description The requested resource (/login_2/Secure/LogoutServlet) is
not available.
Sembra andarsela a cercare in "/login_2/Secure/LogoutServlet" ma qui
tengo le pagine protette da accesso in seguito a login!! La servlet
invece si trova in "tesi.galileo.login.LogoutServlet" in
web-inf/classes
qualcuno sa aiutarmi
thx


http://csvtosql.sf.net

grazie della risp
ma nn va:
type Status report
message /LogoutServlet
description The requested resource (/LogoutServlet) is not available.
richiamando la LoginServlet in questo modo
 <form action=LoginServlet method="POST">
funziona!
nn so ke puo essere :(

  <form action="/LoginServlet" method="POST">
cosi invece non la trova!

risolto..la richiamo cosi
<form action="../LogoutServlet" method="POST">
ma pensavo che avendola definita come
/LogoutServlet
fosse questo il nome con cui si richiamava sempre.. indipendentemente
dalla cartella nella quale si trovasse la pagina jsp.
infatti il '../' si rende necessario in quando la logout.jsp è in una
sottocartella dell'applicazione 'Web Pages'

sickness wrote:

Trucchetto (arcinoto!): se il codice HTML che contiene il tuo tag <form>
viene generato da una JSP, puoi fare cosi':
[...]
<form action="<%= request.getContextPath() %>/LogoutServlet" method="POST">
[...]
e se in web.xml il mapping della "LogoutServlet" e' giusto, sei sicuro che ti
funziona sempre.
Ciao
Roberto

1000 grazie Roberto
su un testo ho trovato una cosa del tipo
<form action='<%= response.encodeURL(request.getContextPath() +
"/filters/login") %>'
method="POST">
cmq come mi hai indicato tu funz bene!
boh mo vedo
thx
:)

 cosi invece non la trova!
perchè allora non è la default application ma è sotto contesto.


 method="POST">
Il metodo encodeURL() serve per l'URL rewriting, al fine di
inglobare nella richiesta, se necessario, il riferimento all'id
della HttpSession: in questo modo l'applicazione web puo' gestire
le sessioni anche se il browser ha i cookie disabilitati.
In realta' non sono convinto che sia corretto inserire la
chiamata ad encodeURL() per comporre l'attributo "action" di
una form, perche' non e' assicurato un merge corretto tra i
parametri della query string cosi' generata ed i parametri
corrispondenti ai campi della form.
Almeno, a me e' capitato che non funzionasse...
Ciao
Roberto

Tu nel caso siano disabilitati i cookie allora come operi?
usi dei tag hidden della jsp per tracciare il session id?
Ciao :)

 usi dei tag hidden della jsp per tracciare il session id?
No, avviso l'utente che deve abilitare i cookie! ;)
Noi *non* usiamo le jsp per lo strato di presentazione
e quindi *non* usiamo l'url rewriting, che del resto e'
una scocciatura perche' ti costringe ad intervenire su
tutti i link e le form da codice, rendendo molto piu'
complicata la separazione tra applicazione e strato
di presentazione.
Almeno, ad oggi non ho trovato una soluzione "furba"
per farlo in modo sufficientemente "trasparente", visto
che abbiamo parecchio installato sul quale altrimenti
si dovrebbe intervenire pesantemente...
Se qualcuno ha qualche suggerimento in merito, e'
bene accetto! :P
Saluti
Roberto

ecco xke sei cosi bravo !! c lavori ;P
io ho appena iniziato a mettere mano a qs cose con la tesi ma penso sia
anche la strada ke percorrero' x lavorare in futuro. Mi hanno proposto
un corso gratuito in una ditta qui nella mia zona cn probabile impiego
ma nn so quanto sia buono e quanto nn t facciano fare le cose che
'servono a loro'. Magari qualcuno sa consigliarmi un buon corso/master
in zona Umbria? magari anche fuori se ne vale davvero la pena
thx
ciao ciao :)

 in zona Umbria? magari anche fuori se ne vale davvero la pena
Se il corso e' *davvero* gratuito, fallo pure, comunque io
non ne ho mai fatti perche' di materiale didattico su Java
ne trovi a tonnellate su Internet.
La fonte primaria per apprendere e' ovviamente il tutorial della Sun!
Ciao
Roberto