Pessoal, estou seguindo a apostila fj21, referente a desenvolvimento web da Caelum e na página 99 a mesma propoe um desafio. Listar os contatos utilizando uma taglib chamada displaytag.
Fui até o endereço citado na apostila, vi alguns exemplos e fiz o download dos arquivos.
Porém, ao rodar a aplicação é gerado um erro que não estou conseguindo solucionar.
Se alguem puder me ajudar eu agradeço.
Erro gerado:
exception
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:343)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
java.lang.Class.getConstructor0(Class.java:2714)
java.lang.Class.newInstance0(Class.java:343)
java.lang.Class.newInstance(Class.java:325)
com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:96)
com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66)
java.beans.Introspector.findExplicitBeanInfo(Introspector.java:455)
java.beans.Introspector.(Introspector.java:405)
java.beans.Introspector.getBeanInfo(Introspector.java:174)
org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3912)
org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2199)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1627)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Generator.generate(Generator.java:3474)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:249)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
java.lang.Class.getConstructor0(Class.java:2714)
java.lang.Class.newInstance0(Class.java:343)
java.lang.Class.newInstance(Class.java:325)
com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:96)
com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66)
java.beans.Introspector.findExplicitBeanInfo(Introspector.java:455)
java.beans.Introspector.(Introspector.java:405)
java.beans.Introspector.getBeanInfo(Introspector.java:174)
org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3912)
org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2199)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1627)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Generator.generate(Generator.java:3474)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:249)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
Página que gera o erro:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@taglib uri="http://displaytag.sf.net/el" prefix="display" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<c:import url="cabecalho.jsp"/>
<%request.setAttribute("lista", dao.getLista()); %>
<display:table name="lista" />
<c:import url="rodape.jsp"/>
</body>
</html>
Dao, de onde busco os dados
public List<Contato> getLista() {
try {
List<Contato> contatos = new ArrayList<Contato>();
PreparedStatement stmt = this.connection.prepareStatement("select * from contato"
+ " order by nm_contato");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
// criando o objeto Contato
Contato contato = new Contato();
contato.setId(rs.getLong("id"));
contato.setNome(rs.getString("nm_contato"));
// montando a data através do Calendar
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dt_nascimento"));
contato.setDataNascimento(data);
contato.setEmail(rs.getString("ds_email"));
// adicionando o objeto à lista
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}