Nao consigo conectar

7 respostas
R

Oi pessoal td bem, estou com um duvida de iniciante no assunto, preciso criar uma pagina JSP que acesse o banco de dados criado no Firebird.
O código para conectar é o seguinte:

import java.sql.*;
public class Conexao {
    private Connection con;
    private String driver;
    private String uRL;
    private String usuario;
    private String senha;
    private String erro;

    public Conexao() {
        this.setDriver("org.firebirdsql.jdbc.FBDriver");
        this.setURL("jdbc:firebirdsql:127.0.0.1/3050:C:/Banco de Dados/BDPROJFINAL.FDB");
        this.setUsuario("sysdba");
        this.setSenha("masterkey");
        this.setErro("");
        this.setCon(null);
    }

    public void setCon(Connection con) {
        this.con = con;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public void setURL(String uRL) {
        this.uRL = uRL;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public void setErro(String erro) {
        this.erro = erro;
    }

    public Connection getCon() {
        return con;
    }

    public String getDriver() {
        return driver;
    }

    public String getURL() {
        return uRL;
    }

    public String getUsuario() {
        return usuario;
    }

    public String getSenha() {
        return senha;
    }

    public String getErro() {
        return erro;
    }
    
    public boolean conectar(){
        try{
            Class.forName(this.getDriver());
            this.setCon(DriverManager.getConnection(
                    this.getURL(),
                    this.getUsuario(),
                    this.getSenha()));
            this.setErro("");
            return true;
        }
        catch(ClassNotFoundException e){
            this.setErro("Driver do BD não pode ser localizado");
            return false;
        }
        catch(SQLException sqlE){
            this.setErro("Conexão com BD não realizada! \nLocalize o erro e tente novamente");
            return false;
        }
        catch(Exception e){
            this.setErro(e.getMessage());
            return false;
        }
    }
}

O que eu preciso é o seguinte conectar com esse banco através de uma pagina JSP cujo código que coloquei é o seguinte:

<jsp:useBean id="bd"class=" Conexao"/>
<%
try{		
		if(bd.conectar()){
			out.println("Conexão OK");
		}
		else{
			out.println("Não Conectado");
		}
}
catch(Exception e){
	out.println(" ERRO " + e.getMessage());
}
%>

Acho que isso deveria ser o suficiente para fazer o que eu queria mais não conecta.
Estou usando o TomCat e pelo que andei lendo teria que estar colocando a pagina em JSP na pasta C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\ROOT, e as classes em C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\WEB-INF\classes, me corrijam se eu estiver errado, mais mesmo fazendo isso não conecta.
Se alguém puder me ajudar fico muito grato, valeu pessoal.

7 Respostas

G

Você está com o driver do firebird no classpath ?

R

Me corrija se eu estiver errado, coloquei os
jaybird-2.0.1.jar
jaybird-full-2.0.1.jar
jaybird-pool-2.0.1.jar
jaas.jar
log4j-core.jar
mini-j2ee.jar
dentro da pasta C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\WEB-INF\lib

M

[color=“green”][size=“18”]Seja bem vindo ao PJ.[/size][/color]

Qual erro(Exception) que que dá durante a conexão?

:pensativo:

R

exception

org.apache.jasper.JasperException: /teste.jsp(1,1) The value for the useBean class attribute Conexao is invalid. org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146) org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1223) org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) org.apache.jasper.compiler.Node$Root.accept(Node.java:456) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) org.apache.jasper.compiler.Generator.generate(Generator.java:3284) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:267) org.apache.jasper.compiler.Compiler.compile(Compiler.java:255) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293) 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)

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

M

opa,

o teu erro não tem nada a ver com banco de dados, qual é o pacote que está tua classe Conexão?

Porque o erro está aí… você deve colocar classe e pacote no atributo class.

:okok:

R

E tenho apenas esses dois arquivos:

  • teste.jsp
    C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\teste.jsp
  • conexao.class
    C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\WEB-INF\classes\conexao.class

é isso mesmo, so esses dois arquivos?
e quanto ao pacote eu coloquei assim

package BD;

import java.sql.*;

public class Conexao {
    private Connection con;
    private String driver;
    private String uRL;
    private String usuario;
    private String senha;
    private String erro;
    
    /** Creates a new instance of BD */
    public Conexao() {
        this.setDriver("org.firebirdsql.jdbc.FBDriver");
        this.setURL("jdbc:firebirdsql:127.0.0.1/3050:C:/Banco de Dados/BDPROJFINAL.FDB");
        this.setUsuario("sysdba");
        this.setSenha("masterkey");
        this.setErro("");
        this.setCon(null);
    }

    public void setCon(Connection con) {
        this.con = con;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public void setURL(String uRL) {
        this.uRL = uRL;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public void setErro(String erro) {
        this.erro = erro;
    }

    public Connection getCon() {
        return con;
    }

    public String getDriver() {
        return driver;
    }

    public String getURL() {
        return uRL;
    }

    public String getUsuario() {
        return usuario;
    }

    public String getSenha() {
        return senha;
    }

    public String getErro() {
        return erro;
    }
    
    public boolean conectar(){
        try{
            Class.forName(this.getDriver());
            this.setCon(DriverManager.getConnection(
                    this.getURL(),
                    this.getUsuario(),
                    this.getSenha()));
            this.setErro("");
            return true;
        }
        catch(ClassNotFoundException e){
            this.setErro("Driver do BD não pode ser localizado");
            return false;
        }
        catch(SQLException sqlE){
            this.setErro("Conexão com BD não realizada! \nLocalize o erro e tente novamente");
            return false;
        }
        catch(Exception e){
            this.setErro(e.getMessage());
            return false;
        }
    }
}

e a JSP assim:

<jsp:useBean id="bd"class=" BD.Conexao"/>
<%
try{      
      if(bd.conectar()){
         out.println("Cadastrado com Sucesso");
      }
      else{
         out.println("Codigo não Encontrado");
      }
}
catch(Exception e){
   out.println(" ERRO " + e.getMessage());
}
%>

porem continua dando erro!!!
oq devo fazer?
se tiver como por favor mande para mim passo a passo oq devo fazer, valeu pela ajuda

type Exception report

message 

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

exception 

org.apache.jasper.JasperException: /teste.jsp(1,1) The value for the useBean class attribute  BD.Conexao is invalid.
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
	org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1223)
	org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
	org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
	org.apache.jasper.compiler.Generator.generate(Generator.java:3284)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
	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.11 logs.
M

Opa,

Bem há 2 coisas que não estão muito legais aí.

1ª é que você criar um projeto separado, tipo minhaAppTeste seguindo a mesma estrutura de arquivos e pastas, neste caso tome cuidado com o arquivo web.xml.

3ª Este erro está acontecendo porque tua classe deve obedecer o pacote em que foi declarado. Por exemplo o arquivo HelloWorld está no pacote com.portaljava.iniciantes a localização física do arquivo dentro da pasta classes de web-inf é com/portaljava/iniciantes/HelloWorld.class.

Qualquer dúvida,

:joia: :okok:

Criado 15 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 7
Participantes 3