Beans

1 resposta
R
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

1 Resposta

L

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,

Criado 14 de maio de 2003
Ultima resposta 14 de mai. de 2003
Respostas 1
Participantes 2