FJ-21 Listando Funcionarios (RESOLVIDO)

Bom dia, estou usando a classe “ContatoDAO” e a “lista-contatos-elegante.jsp” para exibir minha lista de funcionarios, mas pelo erro que acontece eu acho q ele não esta achando a classe:

HTTP Status 500 - java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag

type Exception report

message java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag

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

exception

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:343)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1223)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

O que é estranho pois tenho certeza que é a classe certa…

CLASSE DAO:

[code]package br.com.wacontactcenter.jdbc.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.com.wacontactcenter.jdbc.modelo.Contato;
import br.com.wacontactcenter.jdbc.connection.Connect;

public class ContatoDAO {

private Connection connection;

public ContatoDAO() {
	this.connection = new Connect().getConexao();
}

 public void adiciona(Contato contato) {
     String sql = "insert into contatos " +
             "(nome,departamento)" +
             " values (?,?)";
 
     try {
         // prepared statement para inserção
         PreparedStatement stmt = connection.prepareStatement(sql);
 
         // seta os valores
         stmt.setString(1,contato.getNome());
         stmt.setString(2,contato.getDepartamento());

         // executa
         stmt.execute();
         stmt.close();
     } catch (SQLException e) {
         throw new RuntimeException(e);
     }
 }
 
 public List<Contato> getLista() {
     try {
         List<Contato> contatos = new ArrayList<Contato>();
         PreparedStatement stmt = this.connection.
                 prepareStatement("select * from contatos");
         ResultSet rs = stmt.executeQuery();
 
         while (rs.next()) {
             // criando o objeto Contato
             Contato contato = new Contato();
             contato.setNome(rs.getString("nome"));
             contato.setDepartamento(rs.getString("departamento"));

             // adicionando o objeto à lista
             contatos.add(contato);
         }
         rs.close();
         stmt.close();
         return contatos;
     } catch (SQLException e) {
         throw new RuntimeException(e);
     }
 }

}[/code]

MINHA PAGINA:

[code]<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Insert title here
${contato.nome} ${contato.departamento}
[/code]

Como sou iniciante em java eu não sei o que pode estar acontecendo, sera que alguem pode me ajudar?

Obrigado !!

Verifica se vc adicionou os jars necessários.

Eu adicionei o " jstl-impl-1.2.jar " na pasta WEB-INF/lib

LipezinSouza, também sou iniciante… inclusive estou fazendo este curso…

O que eu acredito que está de errado no seu código é o seguinte:

O seu método para listar os contatos na classe ContatoDAO é chamado getLista, portanto, na sua página linha 15 eu colocaria o seguinte código:

<c:forEach var=“contato” items="${dao.lista}">

Depois me fala se deu certo.

Abraço.
Renato

Sim, estava dessa forma e mesmo assim dava o mesmo erro, no ultimo sabado terminei a primeira parte da formação e começo o java web nesse sabado agora srsrs

Mesmo fazendo do geito q vc falo ele da erro!!

Não sei o que pode estar errado =/

Olá LipezinSouza,

Como você mapeou tudo certinho dentro do web.xml?

LipezinSouza

Posta como você fez o mapeamento no web.xml

Eu fiz este exercício a muito tempo, mas tem o exemplo da apostila:

[code]

servletOiMundo
br.com.caelum.servlet.OiMundo

servletOiMundo /oi [/code]

MEU XML ESTÁ DESSA FORMA:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/erro.html</location> </error-page> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <session-config> <session-timeout>10</session-timeout> </session-config> <display-name>IntranetWA</display-name> <welcome-file-list> <welcome-file>bemvindo.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>servletOiMundo</servlet-name> <servlet-class>br.com.wacontactcenter.servlet.OiMundo</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletOiMundo</servlet-name> <url-pattern>/oi</url-pattern> </servlet-mapping> <servlet> <servlet-name>AdicionaContato</servlet-name> <servlet-class> br.com.wacontactcenter.servlet.AdicionaContatoServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>AdicionaContato</servlet-name> <url-pattern>/adicionaContato</url-pattern> </servlet-mapping> </web-app>

NA APOSTILA NAO PEDE PRA COLOCAR OS .JSP NO XML

Desculpe a demora em responder (estava no trabalho), então analisando troque essa parte do jsp

<c:forEach var="contato" items="${dao.contatos}">  

por:

<c:forEach var="contato" items="${dao.lista}">  

É eu fiz isso mas ja apresentava erro, to vendo que talvez não tenha haver com código, talvez algo q eu tenha esquecido de colocar no projeto ou de configurar

Cara, uma pergunta você adicionou o jar no build path?

Sim esta na build patch, tem 1 arquivo.jar q é o jstl-impl e a de conexão com o banco

Cara falto um jar… o jstl-api, coloque ele ai e me fala se funciono.

É mas o ruim é achar ele agora pq eu n consigo achar um q funcione, vc n tem um por ai n?

Se for projeto web nao precisa adicionar no build path… basta por na pasta webcontent / web-inf / lib

http://search.maven.org/#browse|707331597

Bom dia! Talvez o link abaixo te ajude a baixar: http://jstl.java.net/download.html

[]s

Obs. desculpe não percebi que o link já havia sido passado :oops:

AGORA SIMMMMMMMMMM, FUNCIONOU, TAVA FALTANDO UM .JAR, UFFA EU FALEI Q TINHA ALGO Q EU ESQUECI DE COLOCAR E Q N ERA DE CODIGO RSSRSRSR, GALERA DESCULPE TER OCUPADO O TEMPO DE VOCES, MUITO OBRIGADO PELA AJUDA !!!