Problemas Recuperar as informações da Hibernate

17 respostas
jsnpereira

Deve problema a recuperar as informações da Hibernate. Já tentamos várias maneiras e não encontrei para resolver essa situação veja a mensagem de erro

Tela de erro

HTTP Status 404 - /HibernateComJSP/ServletLista

--------------------------------------------------------------------------------

type Status report

message /HibernateComJSP/ServletLista

description The requested resource (/HibernateComJSP/ServletLista) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.30

Lista.jsp

<%@ 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>


<h1>Lista do Produtos</h1><br>

<table border="2">
<tr><td>ID</td><td>PRODUTOS</td><td>CATEGORIA</td><td>PREÇO</td></tr>
<c: forEach var="lista" items="${lista}">
	<tr>
		<td><c:out value="${lista.id}" /></td>
		<td><c:out value="${lista.nomeProd}" /></td>
		<td><c:out value="${lista.categoria}" /></td>
		<td><c:out value="${lista.preco}" /></td>
	</tr>
</c:>
</table>
</body>
</html>

Controlador para listar a tela

@SuppressWarnings("unchecked")
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		SessionFactory sf = (new AnnotationConfiguration().configure("/cfg/hibernate.cfg.xml")
				.buildSessionFactory());
		
		Session sessao = sf.openSession();
		
		SQLQuery questao = sessao.createSQLQuery("SELECT * FROM	produtos");
		
		List<Produtos> lista = questao.list();
		
		System.out.println("Teste lista: "+lista.size());
		
		request.setAttribute("lista", lista);
		RequestDispatcher rd = request.getRequestDispatcher("Lista.jsp");
		rd.forward(request, response);

		
	}

A classe do produtos funcionam corretamente que já foram testado para inserir as informações no BD.

Espero que vcs me ajudem… obrigado!!

17 Respostas

P

Pra começar se tu tá usando hibernate não precisa usar select *

dá uma procurada no google e veja se acha um tutorial decente de hibernate…

jsnpereira

Puka:
Pra começar se tu tá usando hibernate não precisa usar select *

dá uma procurada no google e veja se acha um tutorial decente de hibernate…

Puka,

eu já tirei “select *” e testamos, mas mesma coisa não funciona e aparecendo a tela http - 400, não sei que tá acontecendo esse erro…

emanuelCruz

Pelo status do erro, não deve ter nada a ver com o hibernate e sim com o mapeamento deste servlet.

Verifique o mapeamento dele no web.xml

jsnpereira

emanuelCruz:
Pelo status do erro, não deve ter nada a ver com o hibernate e sim com o mapeamento deste servlet.

Verifique o mapeamento dele no web.xml

eu tenho pouco conhecimento da sobre web.xml, copiei e postar aqui, veja em baixo para ver tem alguns problemas mapeamento da Servlet.

web.xml

<?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">
  <display-name>HibernateComJSP</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>ServletIncluir</display-name>
    <servlet-name>ServletIncluir</servlet-name>
    <servlet-class>Controlador.ServletIncluir</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletIncluir</servlet-name>
    <url-pattern>/ServletIncluir</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ServletLista</display-name>
    <servlet-name>ServletLista</servlet-name>
    <servlet-class>Controlador.ServletLista</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletLista</servlet-name>
    <url-pattern>/ServletLista</url-pattern>
  </servlet-mapping>
</web-app>
emanuelCruz

Não sei como você está chamando o teu servlet (no browser).
Mas pelo que vi o correto seria chamar assim:
http://localhost:8080/suaAplicacao/ServletIncluir
Acredito que você estava chamando assim:

http://localhost:8080/suaAplicacao/HibernateComJSP/ServletIncluir

Têm que ser como o /ServletLista

jsnpereira

emanuelCruz:
Não sei como você está chamando o teu servlet (no browser).
Mas pelo que vi o correto seria chamar assim:
http://localhost:8080/suaAplicacao/ServletIncluir
Acredito que você estava chamando assim:

http://localhost:8080/suaAplicacao/HibernateComJSP/ServletIncluir

Têm que ser como o /ServletLista

Pois é! mas instalei Tomcast tudo certinho. abrir projeto da web também. não consegui descobrir alguma detalhe esse erro que ocorreu.

J

Então cara, acho que teu mapeamento tá certo. Ele deve estar entrando dentro do seu controlador.

Mas veja, ele está redirecionando para o Lista.jsp. Aonde está esse arquivo?

Tenta criar uma pasta chamada jsp dentro do seu web contents e coloca assim

Só para testar, para ver se dá certo

jsnpereira

javablue:
Então cara, acho que teu mapeamento tá certo. Ele deve estar entrando dentro do seu controlador.

Mas veja, ele está redirecionando para o Lista.jsp. Aonde está esse arquivo?

Tenta criar uma pasta chamada jsp dentro do seu web contents e coloca assim

Só para testar, para ver se dá certo

Lista.jsp fica na pasta web contents.

Já criei e coloquei Lista.jsp na pasta e alterei esse código… mas não adianta, ainda ocorrendo a problemas http 400

dxos

tenta invocar a pagina “Lista.jsp” diretamente da url…
creio que o “/jsp”, possa estar colocando 2 barras no URL, ficando algo parecido como “http://localhost:8080/sistema//jsp/Lista.jsp”.
tente colocar apenas o “jsp/Lista.jsp”

jsnpereira

Olá, pessoal!

Acabei de descobrir e funcionou…

Antes estava coloquei código

Servlet incluindo

response.sendRedirect("Lista.jsp");

Servlet Consulta

request.setAttribute("lista",list);
	RequestDispatcher rd = request.getRequestDispatcher("Lista.jsp");
	rd.forward(request, response);

Esse pode está ocorrendo problemas… porque envia direito da página Lista.jsp sem estar carregando os códigos.

Agora deu resolveu a problemas e segue as modificação

Quando fazer cadastro na página index.htm e clique envia os dados para IncluirServlet e vai redirecionar para ConsultaServlet para carregar os dados manda para listar na tela da página. veja em abaixo.

IncluirServlet

response.sendRedirect("ConsultaServlet"); // no servlet incluir para mandar outro servlet para carregar os dados vai para tela.

Servlet Consulta

request.setAttribute("lista",list);
	RequestDispatcher rd = request.getRequestDispatcher("Lista.jsp");
	rd.forward(request, response);
        // Assim acaba carregar os dados para enviar as informações da tela.
jsnpereira

Olá, pessoal!

Mil Desculpa! me confundi… mandei forum errado…

vou tentar que você me diz… valeu!!

Obrigado!

jsnpereira

dxos:
tenta invocar a pagina “Lista.jsp” diretamente da url…
creio que o “/jsp”, possa estar colocando 2 barras no URL, ficando algo parecido como “http://localhost:8080/sistema//jsp/Lista.jsp”.
tente colocar apenas o “jsp/Lista.jsp”

Dxos,

Acabei de testar e ocorreu outro tipo de problemas. veja ai baixo. fiz mesmo que você disse.

Mensagem de ero

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 compile class for JSP: 

An error occurred at line: 7 in the generated java file
Only a type can be imported. Persistencia.Produtos resolves to a package

An error occurred at line: 13 in the jsp file: /jsp/Lista.jsp
Produtos cannot be resolved to a type
10: &lt;title&gt;Insert title here&lt;/title&gt;
11: &lt;/head&gt;
12: &lt;body&gt;
13: &lt;% List&lt;Produtos&gt; lista = (List&lt;Produtos&gt;) request.getAttribute("lista");%&gt;
14: 
15: &lt;h1&gt;Lista do Produtos&lt;/h1&gt;<br>
16: 


An error occurred at line: 13 in the jsp file: /jsp/Lista.jsp
Produtos cannot be resolved to a type
10: &lt;title&gt;Insert title here&lt;/title&gt;
11: &lt;/head&gt;
12: &lt;body&gt;
13: &lt;% List&lt;Produtos&gt; lista = (List&lt;Produtos&gt;) request.getAttribute("lista");%&gt;
14: 
15: &lt;h1&gt;Lista do Produtos&lt;/h1&gt;<br>
16: 


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.30 logs.

Qual é situação essa ocorreu a falha?

dxos

Então…

você trocou o RequestDispatcher ?

colocou:

RequestDispatcher rd = request.getRequestDispatcher("jsp/Lista.jsp");

como ele esta ?

jsnpereira

dxos:
Então…

você trocou o RequestDispatcher ?

colocou:

RequestDispatcher rd = request.getRequestDispatcher("jsp/Lista.jsp");

como ele esta ?

Já alterei uma parte e apareceu outro erro… veja

Mensagem de 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: org.apache.jasper.JasperException: Unable to load class for JSP
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:161)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:338)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

org.apache.jasper.JasperException: Unable to load class for JSP
	org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:630)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:338)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

java.lang.ClassNotFoundException: org.apache.jsp.jsp.Lista_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:134)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:628)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:338)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.30 logs.

E a agora?

J

Isso é erro de compilação do JSP, no outro post que você fez, você postou o erro. Ele diz que não reconheceu a classe Produtos do List que você tinha criado, precisa fazer o import dessa classe dentro do jsp.

Abraço

dxos

jsnpereira

No primeiro Exemplo que vc postou, vc utilizava JSTL, no erro que você colou vc esta usando scriptled, qual dos 2 vc esta realmente usando ?

se for scriptled concordo com o javablue, se não de uma olhada pois acho que você não declarou as taglibs do JSTL.

jsnpereira

dxos:
jsnpereira

No primeiro Exemplo que vc postou, vc utilizava JSTL, no erro que você colou vc esta usando scriptled, qual dos 2 vc esta realmente usando ?

se for scriptled concordo com o javablue, se não de uma olhada pois acho que você não declarou as taglibs do JSTL.

Você diz é esse importação da classe List ou ArrayList no JSP, correto? mas dei uma olhada nas primeiras linhas da página da JSP, veja em baixo

&lt;%@page import="java.util.List"%&gt;
&lt;%@page import="Persistencia.Produtos"%&gt;
&lt;%@page import="java.util.ArrayList"%&gt;
&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;

é esse?

To utilizando a programa Eclipse…

Criado 19 de abril de 2011
Ultima resposta 25 de abr. de 2011
Respostas 17
Participantes 5