Beans

Pessoal,



Estou comproblemas para rodar um bean…



Veja se estou procedendo certo:



Digito o FncData.java



Compilo p/ FncData.class



Crio o Manifest e o funcao.jar e copios para o diretorio (Utilizo o RealJ)

aplicacao/web-inf/lib



Copio o .class para

aplicacao/classes



No arquivo teste.jsp

eu faço:



<jsp:useBean id="funcao" class="classes.FncData" />



o id="funcao" - é referente ao funcao.jar?

o class="funcao.FncData" - é o diretório aonde deve estar o .class?



Está ocorrendo o seguinte erro:



HTTP Status 500 -



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



type Exception report



message



description The server encountered an internal error () that prevented it from fulfilling this request.



exception



org.apache.jasper.JasperException: Unable to compile class for JSP



An error occurred at line: -1 in the jsp file: null



Generated servlet error:

[javac] Since fork is true, ignoring compiler setting.

[javac] Compiling 1 source file

[javac] Since fork is true, ignoring compiler setting.

[javac] C:\tomcat\work\Standalone\localhost_\teste_jsp.java:47: cannot resolve symbol

[javac] symbol : class FncData

[javac] location: package classes

[javac] classes.FncData funcao = null;

[javac] ^

[javac] C:\tomcat\work\Standalone\localhost_\teste_jsp.java:49: cannot resolve symbol

[javac] symbol : class FncData

[javac] location: package classes

[javac] funcao = (classes.FncData) pageContext.getAttribute("funcao", PageContext.PAGE_SCOPE);

[javac] ^

[javac] C:\tomcat\work\Standalone\localhost_\teste_jsp.java:52: cannot resolve symbol

[javac] symbol : class FncData

[javac] location: package classes

[javac] funcao = (classes.FncData) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "classes.FncData");

[javac] ^

[javac] C:\tomcat\work\Standalone\localhost_\teste_jsp.java:64: cannot resolve symbol

[javac] symbol : class SimpleDateformat

[javac] location: class org.apache.jsp.teste_jsp

[javac] int dia = Integer.parseInt((new SimpleDateformat("dd")).format(new Date()));

[javac] ^





Agradeço a que puder me ajuda



Olá,



Eu, realmente não conheço bem o RealJ, mas normalmente nos WEB SERVER que contém Cointeners JSP/Servlets/Beans o diretório classes é tomado como

raiz para o Beans ou seja você não deve usar classes.FncData e sim apenas

FncData.(Pode reparar que o compilador procura uma package classes, que não existe.Já os arquivos .jar no libs são para adicição de recursos especiais

como um driver JDBC e classes não precisam ser transformada em .jar e serem copiadas para o lib.



Quanto ao attributo a id da tag useBean id significa é nome da varivel de instância que será atribuida ao objeto Bean já o atributo class é nome do Bean neste caso FncData.



**por convenção da linguagem é recomendado que todas as classes Beans terminem com a palavra Bean. Ex: FncDataBean



Espero que ajude,



Um Abraço,