Iniciante em JSP[ problema impossivel de resolver ]

13 respostas
A
ae pessoal começei hj no estuda de java para web.. na apostila q estou segindo a da CAELUM f21 tem um exercicio que eu copio e nao da certo gostaria de saber pq!!!
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>


<jsp:useBean id="dao" class="com.cpaconsulting.dao.DAOagenda"/>

<%
// ...
List usuarios = dao.getLista();
for (int i = 0; i < usuarios.size(); i++ ) {
Usuario usuario = (Usuario) usuarios.get(i);
%>
<li>&lt;%=usuario.getNome()%&gt;, &lt;%=usuario.getEmail()%&gt;:
&lt;%=usuario.getEndereco()%&gt;</li>
&lt;%
}
%&gt;

&lt;/html&gt;

o programa tah ai!!! oq que esta errado?!

13 Respostas

Cabral

Poste aqui a mensagem de erro :slight_smile:

A

o erro eh esse:

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: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
	org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
	org.apache.jasper.compiler.TagLibraryInfoImpl.&lt;init&gt;(TagLibraryInfoImpl.java:147)
	org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:423)
	org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1552)
	org.apache.jasper.compiler.Parser.parse(Parser.java:126)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:155)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.


--------------------------------------------------------------------------------
A

nao sera problema dos arquivos .jar do JSTL ?? eu tenho os 2… eu coloquei eles no eclipse no class path do projeto … esta certo???

Cabral

Cara, de uma olhada se ele esta np lib da sua aplicação e verifique também se os arquivos .tld estão abaixo do diretório “WEB-INF” da tua aplicação.

Abraço

Ricardo Cabral

A

.tld ??? nun entendi… eu tenho 2 arquivos jstl.jar standard.jar os 2 estao no meu Workspace do eclipse dentro da pasta do projeto e dentro da pasta WEB-INF/lib

A

e meu web.xml esta assim

&lt?xml version="1.0" encoding="ISO-8859-1"?&gt
&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"&gt;

&lt;taglib&gt;
&lt;taglib-uri&gt;http://java.sun.com/jsp/jstl/core&lt;/taglib-uri&gt;
&lt;taglib-location&gt;/WEB-INF/lib/c.tld&lt;/taglib-location&gt;
&lt;/taglib&gt;



&lt;display-name&gt;
	Aplicacao web simples
&lt;/display-name&gt;

&lt;/web-app&gt;
A

ae pessoal nun consigo resolver isso que raiva =/ ngm tem nem idea do possivel erro!??!

E

veja no configurar build path do eclipse se os .jar estão mesmo no classpath da aplicação. qq coisa clica com o botão direito nesses arquivos dentro do eclipse e veja se é possível adicioná-los ao classpath da aplicação.

Cabral

cara se não me engano na versão 2.4 você não precisa declarar no WEB-INF o tld.

retira ele de lá pra ver se funciona

Ricardo Cabral

E

pelo q vi no seu jsp vc não colocou a diretiva page. coloque-a em cima da &lt@taglib pra ver se funciona:

&lt;%@ page language="java"  contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%&gt;
A

ae pessoal a situação é o seguinte:

web.xml
&lt?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt
&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"&gt;
&lt;display-name&gt;
	Aplicacao web simples
&lt;/display-name&gt;

&lt;/web-app&gt;
lista-elegante.jsp
&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;
 &lt;html&gt;


 &lt;jsp:useBean id="dao" class="com.cpaconsulting.dao.DAOagenda"/&gt;

 &lt;%

 List usuarios = dao.getList();
 for (int i = 0; i &lt; usuarios.size(); i++ ) {
 Usuario usuario = (Usuario) usuarios.get(i);
 %&gt;
 <li>&lt;%=usuario.getNome()%&gt;, &lt;%=usuario.getEmail()%&gt;:
 &lt;%=usuario.getEndereco()%&gt;</li>
 &lt;%
 }
 %&gt;

 &lt;/html&gt;
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 load class for JSP
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

org.apache.jasper.JasperException: Unable to load class for JSP
	org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:598)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:147)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:315)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.ClassNotFoundException: org.apache.jsp.lista_002delegante_jsp
	java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	java.security.AccessController.doPrivileged(Native Method)
	java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:133)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:65)
	org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:596)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:147)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:315)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

e tb!!

eu estou cm agenda.jar, jstl.jar, standard.jar no class-path do projeto e eles estao na pasta WEB-INF\lib !!!

a classe DAOagenda esta compilando em java 1.4 pois fiquei sabendo q nao pode ser o 5.0

vai ai as classes da agenda.jar
public class DAOagenda {
	private static Connection con;

	private static PreparedStatement stmt;

	static int IDUser;

	public static void Connect() {
		try {
			con = ConnectionMySQL.getConnection("agenda");
		} catch (ClassNotFoundException e) {

			e.printStackTrace();
		} catch (SQLException e) {

			e.printStackTrace();
		}

	}


	public static List getLista() {

		Connect();
		try {
			stmt = (PreparedStatement) con
					.prepareStatement("select * from usuario");
			ResultSet rs = (ResultSet) stmt.executeQuery();
			List lista = new ArrayList();
			while (rs.next()) {
				// criando o objeto Usuario

				String nome = rs.getString("nome");
				String telefone = rs.getString("telefone");
				String email = rs.getString("email");
				Usuario usuario = new Usuario(nome, telefone, email);

				// adicionando o objeto à lista
				lista.add(usuario);

			}
			rs.close();
			stmt.close();
			con.close();

			return lista;

		} catch (SQLException e) {
			e.printStackTrace();
			return null;

		}

	}
package com.cpaconsulting.agenda.vo;

public class Usuario {

	private int IDUser;

	private String nome;

	private String telefone;

	private String email;

	public Usuario(String nome, String telefone, String email) {

		this.nome = nome;
		this.telefone = telefone;
		this.email = email;

	}

	public Usuario(int IDUser, String nome, String telefone, String email) {
		this.IDUser = IDUser;
		this.nome = nome;
		this.telefone = telefone;
		this.email = email;

	}

	public Usuario() {

	}

	public String getEmail() {
		return this.email;
	}

	public String getNome() {
		return this.nome;
	}

	public String getTelefone() {
		return this.telefone;
	}

	public int getIDuser() {
		return this.IDUser;
	}

	public String toString() {

		return nome + " :: " + telefone + " :: " + email;
	}
}

fikou muita coisa... mais tah tudu ai... se alguem consegir me ajudar.. vlwww

A

emanoeltadeu:
pelo q vi no seu jsp vc não colocou a diretiva page. coloque-a em cima da &lt@taglib pra ver se funciona:

&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%&gt;

nao funcionou

J

verifique o seu web.xml

http://java.sun.com/jsp/jstl/core /WEB-INF/c.tld

aponte o tablib-location para onde está o c.tld (tem que estar dentro do WEB-INF)

Verifique tambem a biblioteca (jar) do JSTL.

Criado 15 de janeiro de 2007
Ultima resposta 15 de jan. de 2007
Respostas 13
Participantes 4