Erro em tempo de tradução no useBean de uma JSP

10 respostas
Y

Galera, estou criando uma minúscula aplicação afim de praticar o desenvolvimento de JSP’s e Servlets.

Deparei-me agora com um problema muito exdrúxulo que não estou conseguindo resolver.

Criei uma JSP assim:

<%@ page language="java" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Iterator" %>

<jsp:useBean id="usersList" scope="page" class="UsersData" />

&lt%
ArrayList&lt User &gt userList = usersList.getUsersList();
Iterator iterator = userList.iterator();
%&gt

<% while(iterator.hasNext()) %>
  <% { %>
    <%
    User user = iterator.next();
    out.printf("Username: %s   |   Password: %s<br>", user.getUsername(), user.getPassword());
    %>
  <% } %>

E o Bean UsersData:

import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import java.util.ArrayList;
import com.sun.rowset.CachedRowSetImpl;

public class UsersData
  {
   private CachedRowSet rs;

   public UsersData() throws Exception
     {
      String instSql = "SELECT * FROM user_list ORDER BY username ASC";

      Class.forName("com.mysql.jdbc.Driver");

      rs = new CachedRowSetImpl();
      rs.setUsername("test");
      rs.setPassword("test");
      rs.setCommand(instSql);
      rs.execute();
     }

   public ArrayList&lt User &gt getUsersList() throws SQLException
     {
      ArrayList&lt User &gt users = new ArrayList&lt User &gt();

      rs.beforeFirst();

      while(rs.next())
        { users.add(new User(rs.getString(2), rs.getString(3))); }

      return users;
     }
  }

Acontece que quando tento rodar o JSP, a primeira linha do rastreamento de pilha que define bem o erro é essa: /usersListView.jsp(5,0) The value for the useBean class attribute UsersData is invalid.

Só que não entendo, eu achava que os BEans deveriam ficar na pasta WEB-INF\classes, mas aí ocorria o erro citado. Então coloquei o Bean na mesma pasta do JSP, e o erro persistiu.

Alguém poderia me ajudar nesse erro superfluamente insolúvel?

10 Respostas

furutani

Eu não sei por que mais voce tem que por dentro de um package, exemplo br.seusite.UsersData

O tomcat não carrega classes diretamente distribuidas em WEB-INF/classes

Y

Cara, primeiramente obrigado pela ajuda e um Feliz Natal, é claro.

Mas olha só, ainda não funcionou.

Acrescentei a seguinte linha ao UsersData:

package ym.util;

E recompilei, ficando na estrutura de diretórios assim:

WEB-INF
classes
ym
util
UsersData.class

Aí tentei compilar setando o atributo class do useBean para class=“ym.util.UsersData”, mas o erro persistiu dizendo que o valor do atributo class era inválido.

Tentei também o seguinte no JSP:

<%@ page import="ym.util.UsersData" %>
<jsp:useBean id="usersList" scope="page" class="UsersData"/>

Mas mesmo assim não funcionou.

Eu não entendo, estou teoricamente fazendo tudo correto… mas esse negócio não funciona, hehehe. Têm alguma idéia do que pode ser?

furutani
<jsp:useBean id="usersList" scope="page" class="ym.util.UsersData"/>
Y

Sim cara, mas foi o primeiro código que testei, eu disse:

Ou seja, eu primeiramente havia testado como tu disseste, mas não entendo pq não roda.

furutani

vc reiniciou o tomcat?
toda vez quando alterar algo dentro de web-inf é bom reinicia-lo.

Y

Sim, sempre que recompilo algum servlet ou modifico uma JSP, eu reinicio o tomcat.

Também tento às vezes recarregar o contexto no painel de controle do Manager, mas mesmo assim não funciona.

Y

Ae galera, será que ninguém pode me dar um auxílio ae? Po, to tri ligado em aprender J2EE, sempre gostei de desenvolvimento web (vide sign), e agora estou nesse impasse aparentemente insolúvel. A codificação está teoricamente correta, mas não quer rodar de modo algum. Sempre acusa o mesmo erro.

Alguma dica? Please!!!

Anderson_Schmidt

hi,

Está usando NetBeans? Se sim, pressionando Ctrl+ na declaração do bean vc consegue chegar até a classe?

Flws!

Y

Estou usando o bloco de notas pra editar os arquivos e o Tomcat pra rodar.

Y

Estou usando o bloco de notas pra editar os arquivos e o Tomcat pra rodar.

Criado 24 de dezembro de 2006
Ultima resposta 27 de dez. de 2006
Respostas 10
Participantes 3