FJ-21 Listando Funcionarios (RESOLVIDO)

18 respostas
L

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:

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);
	     }
	 }
}

MINHA PAGINA:

<%@ 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"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="dao" class="br.com.wacontactcenter.jdbc.dao.ContatoDAO"/>

<table>
  <!-- percorre contatos montando as linhas da tabela -->
  <c:forEach var="contato" items="${dao.contatos}">
    <tr>
      <td>${contato.nome}</td>
      <td>${contato.departamento}</td>
    </tr>
  </c:forEach>
</table>
</body>
</html>

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

Obrigado !!

18 Respostas

R

Verifica se vc adicionou os jars necessários.

L

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

R

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

L

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 =/

C

Olá LipezinSouza,

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

R

LipezinSouza

Posta como você fez o mapeamento no web.xml

C

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

<servlet>
    <servlet-name>servletOiMundo</servlet-name>
    <servlet-class>br.com.caelum.servlet.OiMundo </servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>servletOiMundo</servlet-name>
     <url-pattern>/oi</url-pattern>
</servlet-mapping>
L

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

C

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}">
L

É 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

C

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

L

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

C

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

L

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

R

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

C

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

F

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:

L

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 !!!

Criado 14 de janeiro de 2013
Ultima resposta 16 de jan. de 2013
Respostas 18
Participantes 6