Newsgroup: it.comp.java
Titolo: jsp e bean

Non riesco a far vedere il punto .class  di un bean alla jsp che lo chiama.
Il bean è il file DateTime.class che è stato inserito in WEB-INF\Classes
dove tra l'altro metto i  .class delle servlet, che però funzionano. Le
servlet sono registrate nel file web.xml, mentre il bean no, anche perchè
non so se debba essere fatto e come eventualmente farlo.
Questa è la jsp  "prova.jsp":
<HTML>
<HEAD>
</HEAD>
<jsp:useBean id = "dateTime" class = "DateTime" />
<BODY >
oggi è <jsp:getProperty name = "dateTime" property = "date"/><br>
e sono le ore <jsp:getProperty name = "dateTime" property = "time"/>
</BODY>
</HTML>
Questo è l'errore che mi viene dato da Tomcat 4.0:
type         Exception report
message         Internal Server Error
description         The server encountered an internal error (Internal
Server Error)
that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 5 in the jsp file: /prova.jsp
Generated servlet error:
C:\Apache Tomcat 4.0\work\localhost\miaCartella\prova$jsp.java:60: Class
org.apache.jsp.DateTime not found.
                DateTime dateTime = null;
                ^
An error occurred at line: 5 in the jsp file: /prova.jsp
Generated servlet error:
C:\Apache Tomcat 4.0\work\localhost\miaCartella\prova$jsp.java:63: Class
org.apache.jsp.DateTime not found.
                    dateTime= (DateTime)
                               ^
An error occurred at line: 5 in the jsp file: /prova.jsp
Generated servlet error:
C:\Apache Tomcat 4.0\work\localhost\miaCartella\prova$jsp.java:68: Class
org.apache.jsp.DateTime not found.
                            dateTime = (DateTime)
java.beans.Beans.instantiate(this.getClass().getClassLoader(), "DateTime");
                                        ^
An error occurred at line: 9 in the jsp file: /prova.jsp
Generated servlet error:
C:\Apache Tomcat 4.0\work\localhost\miaCartella\prova$jsp.java:87: Class
org.apache.jsp.DateTime not found.
out.print(JspRuntimeLibrary.toString((((DateTime)pageContext.findAttribute("
dateTime")).getDate())));
                                                        ^
An error occurred at line: 10 in the jsp file: /prova.jsp
Generated servlet error:
C:\Apache Tomcat 4.0\work\localhost\miaCartella\prova$jsp.java:94: Class
org.apache.jsp.DateTime not found.
out.print(JspRuntimeLibrary.toString((((DateTime)pageContext.findAttribute("
dateTime")).getTime())));
                                                        ^

 non so se debba essere fatto e come eventualmente farlo.
basta metterlo nella cartella classes...
però attento ai package, controlla bene....
ciao, marco

Il bean fa per caso parte di un package?
Perchè se è così devi scrivere il tag useBean nel seguente modo:
<jsp:useBean id = "dateTime" class = "packagedellaclasse.DateTime" />


Non esiste nessun package ed il .class è già inserito in Web-INF\Classes.
Però non funziona lo stesso.

 Però non funziona lo stesso.
però dovrebbe funzionare... ; )
non c'è niente da mettere nel web.xml al contrario delle servlet.....
mi sembra strano....
C:\Apache Tomcat 4.0\work\localhost\miaCartella\prova$jsp.java:60: Class
org.apache.jsp.DateTime not found.
ok leggendo l' errore mi sembra di capire che tu fai un import di un package
org.apache.jsp.* che contiene una classe DateTime che si confonde con quella
da te creata...
oppure è il tomcat che dà i numeri....
comunque prova giusto per curiosità a cambiargli nome (sono sicuro al 90%
che poi vada)....
o controlla gli import ecc.....
ciao, marco

Sono riuscito a farlo funzionare ma solo inserendo il bean in un package (di
cui non ho alcun bisogno) e quindi il suo percorso è diventato :
Web-Inf\Classes\mioBean\*.class
Vorrei farlo funzionare direttamente dalla cartella Classes o perlomeno
vorrei sapere perchè mi obbliga ad utilizzare un package.
Grazie,
Ciao!

 wrote in message
news:9tm413$10g$1...@nreada.inwind.it...

Ciao,
Come ti ho detto non è che ti obbliga solo che confonde la tua classe
DateTime
con la classe org.apache.jsp.DateTime.
Il perchè confonda le 2 classi di preciso non lo sò...
forse perchè quando compila la jsp fà un import del package org.apache.jsp.*
è l' unica spiegazione che riesco a darmi...
comunque se vuoi tenerla sotto WEB-INF/classes/ basta che cambi il nome
della tua classe..
magari metti DateTimeSupport o che sò.....
ciao, marco

Non so perchè, ma anche cambiandole nome non c'è verso di farla funzionare.
Mi dà sempre questa eccezione:
org.apache.jasper.JasperException: Unable to compile class for JSP
Grazie comunque,
Ciao!