Deu pau JSTL

oi pessoal já estou tentando passa a programa em JSTL mas este exemplo esta dando erro, o codigo e este:

Este e servlet.

[code]import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.ConectarException;
import util.Fachada;

public class Teste extends HttpServlet implements Servlet{

public void service(HttpServletRequest request, HttpServletResponse response)  throws IOException, ServletException {  
 RequestDispatcher rd;  
 Fachada sistema = Fachada.getInstancia();
 try {
	request.setAttribute("suaLista",sistema.listarCliente());
} catch (ConectarException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}  
 rd = getServletContext().getRequestDispatcher("/SuaJSP.jsp");  
 rd.forward(request, response);  
}  

}[/code]

esta e pagina JSP “SuaJSP.jsp” esta na pasta raiz


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl" %>
<html>
	<body>
		<c:forEach var="lista" items="${suaLista}">  
 			${lista.codigo}">  
			${lista.nome}  
		</c:forEach>  
	</body>

</html>

o problema:

type Exception report

message

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

exception

org.apache.jasper.JasperException: This absolute uri (http://java.sun.com/jsp/jstl) cannot be resolved in either web.xml or the jar files deployed with this application
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:105)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:430)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:154)
	at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:159)
	at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:354)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:381)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:800)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:122)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:199)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:153)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:223)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
	at painel.Teste.service(Teste.java:28)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
	at java.lang.Thread.run(Unknown Source)

Apache Tomcat/4.1.18

Como vai,

Você está utilizando o tomcat 4.1… que implementa uma versão bem antiga da especificação JSP/Servets…
Pelo que vi, você tem dois problemas:

1.No web.xml, a uri que você indicou “http://java.sun.com/jsp/jstl” não foi encontrada no seu contexto, tente rever esta uri. Preste atenção, pois como seu container é antigo, ele não é compatível com as versões mais novas da jstl…
2.No seu jsp, “${lista.codigo}” isto gera um erro… pois só funciona no tomcat5.0 ou posterior… para utilizar no tomcat 4.1 deve-se fazer <c:out value="${lista.codigo}" />

Bem, espero ter ajudado e boa sorte…

Oi Nadilsons obrigado pela atenção. já instalei o tomcat 5.5 mas mesmo assim da este erro:

[code]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.JspCompilationContext.load(JspCompilationContext.java:599)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
painel.Teste.service(Teste.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.ClassNotFoundException: org.apache.jsp.SuaJSP_jsp
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:597)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
painel.Teste.service(Teste.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.
Apache Tomcat/5.5.25[/code]

Desculpe-me a demora…
Entao, facilitaria se você colocasse o código do seu jsp.

Mas de acordo com o stack trace:

org.apache.jasper.JasperException: Unable to load class for JSP 

pode-se inferir que existe alguma coisa no seu jsp que impede que a página seja traduzida para um servlet…

Até

esta e pagina JSP “SuaJSP.jsp” esta na pastawebapps

view plaincopy to clipboardprint?

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl" %>  
<html>  
    <body>  
        <c:forEach var="lista" items="${suaLista}">    
             ${lista.codigo}">    
           ${lista.nome}    
         </c:forEach>    
    </body>  
 </html>  

e este e codigo servlet


import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.ConectarException;
import util.Fachada;

public class Teste  extends HttpServlet implements Servlet{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void service(HttpServletRequest request, HttpServletResponse response)  throws IOException, ServletException {  
     RequestDispatcher rd;  
     Fachada sistema = Fachada.getInstancia();
     try {
		request.setAttribute("suaLista",sistema.listarCliente());
	} catch (ConectarException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	 rd = getServletContext().getRequestDispatcher("/SuaJSP.jsp");  
     rd.forward(request, response);  
    }  
}

meu web.xml esta configurado assim

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>Teste</servlet-name> <servlet-class>fach.Teste</servlet-class> </servlet> <servlet-mapping> <servlet-name>Teste</servlet-name> <url-pattern>/tls</url-pattern> </servlet-mapping> <servlet> <servlet-name>CDTCliente</servlet-name> <servlet-class>fach.CDTCliente</servlet-class> </servlet> <servlet-mapping> <servlet-name>CDTCliente</servlet-name> <url-pattern>/Cadastro</url-pattern> </servlet-mapping> </web-app>

Olá,

Entao, percebi que a causa principal do erro é

java.lang.ClassNotFoundException: org.apache.jsp.SuaJSP_jsp   

Você colocou o jsp no arquivo de deploy?

Feliz 2008 a todos !!!

nadilsons Tudo bom, não sei o que deploy, pois estou neste ramo há pouco tempo pra se sensato estou aprendendo desenvolver pra web “JAVA”, mas se não for pedi muito. Como faço pra contornar este erro???

mano