Re:Erro de noob, JSP chamar CLASS (urgente)

8 respostas
timotta

Você tem que fazer o import das suas classes no JSP

<%@ page import="" %>

Também reparei uma coisa esquisita no seu código, você criou um método com o mesmo nome de sua classe, o que remeteria para ser o construtor. Aconselho-o a trocar o nome deste método para não causar confusão, chamá-lo de obterConexao() por exemplo.

8 Respostas

timotta

Você criou uma classe com caracteres especiais?

/WEB-INF/classes/br/com/curves/dao/ComunicaçãoSQL.class

timotta

Tem algo muito estranho ocorrendo aí rapaz.

Veja que a classe que você colou aqui é do pacote br.com.dao

package br.com.dao;
 (...)
 public class ComunicacaoSQL {

A classe em que está ocorrendo o erro de NullPointerException é do pacote br.com.curves.dao

java.lang.NullPointerException
 	at br.com.curves.dao.ComunicacaoSQL.buscar(ComunicacaoSQL.java:20)

E a classe que não está sendo encontrada é do pacote br.com.curves.dao mas tem um nome diferente (por causa dos caracteres especiais)

WebappClassLoader:     Resource '/WEB-INF/classes/br/com/curves/dao/ComunicaçãoSQL.class' is missing

Que espécie de besteirinha vc ta fazendo aí?

pcalcado

Como disse o Tiago provavelmente o problema está com a classe dos acentos.

Java possui itnernacionalização por default, o que permite este tipo de nomes para classes ou identificadores mas este é o tipo de coisa que não se usa porque sempre dá problema.

bb1

Segue a recomendacao dos meninos… procura primeiro importar as classes do seu jsp., etc…

everson_z

index.jsp

<html>
<body>

     <% 
             ComunicacaoSQL c = new ComunicacaoSQL();
             c.buscar();
      %>

</body>
</html>

ComunicacaoSQL

package br.com.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;

public class ComunicacaoSQL {

	List cidade = new ArrayList();
	List estado = new ArrayList();
	
	public void buscar(){
		
		try {
			Conexao conexao = new Conexao();
			Connection con = conexao.Conexao();		
			PreparedStatement stmt = con.prepareStatement("select * from tb_franquia");
			ResultSet rs = stmt.executeQuery();
			
			int a = 0;
			while (rs.next()) {
				a = a++;
				cidade.add(a, rs.getString("cidade"));
				estado.add(a, rs.getString("estado"));	
			}
			rs.close();
			stmt.close();
			con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}	
	}
	
	public List getCidade() {
		return cidade;
	}

	public List getEstado() {
		return estado;
	}
	
}
package br.com.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conexao {

	/**
	 * @param args
	 */
    static String driver = "com.mysql.jdbc.Driver";
    static String url = "jdbc:mysql://localhost/teste";
    static String usuario = "root";
    static String senha = "casaco";
	
	protected Connection Conexao(){
		Connection conn = null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, usuario, senha);
			System.out.println("Conectado");
			
		}catch (Exception e){
			System.out.println(e.getMessage());
		}
		return conn;
	}
}

[b]
Esta tudo funcionando quando eu só rodo as classes… o problema é quando eu coloco o JSP para instanciar o class.

Alguem poderia me dar uma luz de como fazer um JSP chamar o class para fazer a busca no banco de dados e retorno os valores no JSP?
[color=red]
Preciso fazer a busca no banco de dados via JSP
[/color][/b]

everson_z

O 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
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:207)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:198)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:138)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2459)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:132)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:126)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)


root cause 

java.lang.NullPointerException
	at br.com.curves.dao.ComunicacaoSQL.buscar(ComunicacaoSQL.java:20)
	at org.apache.jsp.cortesia_jsp._jspService(cortesia_jsp.java:50)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:198)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:138)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2459)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:132)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:593)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:126)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:954)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)



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

Apache Tomcat/4.1.34
Console
13/02/2007 18:23:30 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.34
13/02/2007 18:23:31 org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
13/02/2007 18:23:31 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
13/02/2007 18:23:31 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/47  config=null
com.mysql.jdbc.Driver
WebappClassLoader:     Resource '/WEB-INF/classes/br/com/curves/dao/ComunicaçãoSQL.class' is missing
com.mysql.jdbc.Driver

Esta tudo ok, se eu criar um metodo MAIN para buscar os valores do banco tudo funciona mas, se eu tento pelo JSP num da certo.

O drive tb esta ok.

everson_z

O que devo fazer???

everson_z

Achei o erro…

Eu programo em Swing e quando falamos de driver, basta fazer o import mas, no web tem que add ele na pasta lib

Vlw

Criado 13 de fevereiro de 2007
Ultima resposta 14 de fev. de 2007
Respostas 8
Participantes 4