Olá Pessoal,
Sou novo por aqui.
Estou há dias tentando me conectar a um banco de dados MySql, através de um javabean de conexão e não consigo.
Uso uma pág HTML p/ chamar um servlet e este servlet importa o pacote javabean para que eu possa instancia-lo e usar suas funções públicas.
Experimentei usar esse bean p/ abrir um banco de dados ACCESS através de ODBC e funcionou.
Outro detalhe interessante é q quando eu estabeleço a conexao diretamente no servlet, com todas as funções dentro do servlet, funciona. Mas através do bean nao vai de jeito nenhum.
Eu coloquei o arquivo “mysql-connector-java-3.1.12-bin.jar” dentro da pasta lib do WEB-INF da aplicação. Tinha lido q isso seria o suficiente.
Depois mudei p/ o common/lib, tb nao funcionou.
Como continuou com o problema adicionei a seguinte linha no classpath do autoexec.bat.
SET CLASSPATH=%CATALINA_HOME%\COMMON\LIB\mysql-connector-java-3.1.12-bin.jar;%CLASSPATH%
Tb não resolveu.
Abaixo aparece vai um trecho do erro q surge no navegador, a classe do servlet e do bean de conexão.
Se alguém puder me ajudar, agradeço desde já.
Abraços
Zovao
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
at CadServletFileBeanConexArq.doPost(CadServletFileBeanConexArq.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
A linha 47 é a q chama a função insertIntoDB do javabean.
========///////////////===============
// Este é o servlet CadServletFileBeanConexArq.java
import javax.servlet.<em>;
import javax.servlet.http.</em>;
import java.util.<em>;
import java.sql.</em>;
import conJdbc.*;
public class CadServletFileBeanConexArq extends HttpServlet {
public ConexPed connect = null;
private String driver = “com.mysql.jdbc.Driver”;
private String URL = “jdbc:mysql://localhost:3306/cadastro”;
public void init( ServletConfig config )
throws ServletException
{
super.init( config );
try
{
connect = new ConexPed(driver, URL, "monty", "some_pass");
}
catch ( Exception e )
{
e.printStackTrace();
connect = null;
}
}
public void doPost( HttpServletRequest req,
HttpServletResponse res )
throws ServletException
{
boolean success = true;
String email, nome, sobrenome, produto, valor;
email = req.getParameter( "Email" );
nome = req.getParameter( "Nome" );
sobrenome = req.getParameter( "Sobrenome" );
produto = req.getParameter( "Produto" );
valor = req.getParameter( "Valor" );
res.setContentType( "text/html" );
if ( email.length() > 0 && nome.length() > 0 && sobrenome.length() > 0 && valor.length() > 0 )
{
/* inserting data */
success = connect.insertIntoDB(
"'" + email + "','" + nome + "','" + sobrenome + "','" + produto + "'", Double.parseDouble(valor) );
}
}
// fechando connection
public void destroy()
{
connect.fecharConexao();
}
}
=============///////////////============
Aqui está o contrutor do JavaBean.
package conJdbc;
import java.sql.*;
public class ConexPed
{
public Connection connection;
public Statement statement;
public ConexPed (String driver, String urlServidor, String user, String password)
throws SQLException
{
try
{
Class.forName(driver);
connection = DriverManager.getConnection(urlServidor,user,password);
}
catch (ClassNotFoundException ex)
{
System.out.println("Não foi possível encontrar a classe do Driver: " + driver);
}
catch (SQLException ex)
{
System.out.println(“Não foi possível conectar ao servidor”);
throw ex;
}
try
{
statement = connection.createStatement();
}
catch (SQLException ex)
{
System.out.println(“Não foi possível criar a statement”);
throw ex;
}
}
…