Ola,
Estou com um problema em uma classe.
A minha classe funciona em um computador, mas nao funciona em outros.
segue a classe:
public class TesteDao {
private Statement stm = null;
private ConBD conec = new ConBD();
public void adiciona(Teste teste) throws SQLException, ParseException {
try {
stm = ConBD.getConnection().createStatement();
PreparedStatement pstmt = stm.getConnection().prepareStatement(
"insert into teste values (?, ?, ?) ");
pstmt.setInt(1, teste.getId());
pstmt.setString(2, teste.getDescricao());
pstmt.setInt(3, teste.getQuant());
pstmt.executeUpdate();
} catch (SQLException ex) {
System.out.println("erro na inclusao");
}
conec.desconBD();
// stm.close();
}
Aparece o seguinte erro:
Conectou ao BD… // essa mensagem e’ da classe de conexao
erro na inclusao
java.lang.NullPointerException
at jdbc.ConecBD.desconecDB(ConecBD.java:29)
at DAO.AlunosDao.adiciona(TesteDao.java:29)
at org.apache.jsp.GravaTeste_jsp._jspService(GravaTeste_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
GravaTeste.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*, DAO.*" %>
<jsp:useBean id="testeDao" class="DAO.TesteDao" scope="session" />
<jsp:useBean id="teste" class="DAO.Teste" scope="session" />
<%
teste.setId(Integer.parseInt(request.getParameter("ID")));
teste.setDescricao(request.getParameter("descricao"));
teste.setQuantidade(request.getParameter("quantidade"));
testeDao.adiciona(teste);
%>
No meu computador funciona, mas quando copiei para o notebook, nao funciona.
O banco e o SQL server 2005, esta com o tcp/ip habilitado, com 1433 e nao esta
com firewall. Estou autenticando pelo SQL, ou seja, esta igual ao meu PC.
[quote=rsaforuns]Ola,
Estou com um problema em uma classe.
A minha classe funciona em um computador, mas nao funciona em outros.
segue a classe:
public class TesteDao {
private Statement stm = null;
private ConBD conec = new ConBD();
public void adiciona(Teste teste) throws SQLException, ParseException {
try {
stm = ConBD.getConnection().createStatement();
PreparedStatement pstmt = stm.getConnection().prepareStatement(
"insert into teste values (?, ?, ?) ");
pstmt.setInt(1, teste.getId());
pstmt.setString(2, teste.getDescricao());
pstmt.setInt(3, teste.getQuant());
pstmt.executeUpdate();
} catch (SQLException ex) {
System.out.println("erro na inclusao");
}
conec.desconBD();
// stm.close();
}
Aparece o seguinte erro:
Conectou ao BD… // essa mensagem e’ da classe de conexao
erro na inclusao
java.lang.NullPointerException
at jdbc.ConecBD.desconecDB(ConecBD.java:29)
at DAO.AlunosDao.adiciona(TesteDao.java:29)
at org.apache.jsp.GravaTeste_jsp._jspService(GravaTeste_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
GravaTeste.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*, DAO.*" %>
<jsp:useBean id="testeDao" class="DAO.TesteDao" scope="session" />
<jsp:useBean id="teste" class="DAO.Teste" scope="session" />
<%
teste.setId(Integer.parseInt(request.getParameter("ID")));
teste.setDescricao(request.getParameter("descricao"));
teste.setQuantidade(request.getParameter("quantidade"));
testeDao.adiciona(teste);
%>
No meu computador funciona, mas quando copiei para o notebook, nao funciona.
O banco e o SQL server 2005, esta com o tcp/ip habilitado, com 1433 e nao esta
com firewall. Estou autenticando pelo SQL, ou seja, esta igual ao meu PC.
[/quote]
Rapaz posta aí a sua classe de conexão com o BD e aproveita e explica melhor o que vc esta fazendo vc está tentando acessar o seu servidor de banco de dados do desktop pelo nootbook ou vc está criando um novo banco de dados no nootbook?
Estou so’ copiando o projeto do meu PC para o meu note.
segue a classe de conexao:
package jdbc;
import java.sql.*;
public class ConBD {
public static Connection con = null;
public Statement stm;
private static final String URL = "jdbc:jtds:sqlserver://SQLNOTE/bdteste";
private static final String DRIVER = "net.sourceforge.jtds.jdbc.Driver";
private static final String USUARIO = "sa";
private static final String SENHA = "123456";
public static Connection getConnection() throws SQLException{
try{
Class.forName(DRIVER);
System.out.println("Conectando a BD...");
con = DriverManager.getConnection(URL, USUARIO, SENHA);
return con;
}catch (ClassNotFoundException e) {
System.out.println("Falha ao caregar o drive");
throw new SQLException (e.getMessage());
}
}
public Connection desconBD() {
try {
con.close();
}
catch(Exception e) {
e.printStackTrace();
}
return con;
}
}
[quote=rsaforuns]Estou so’ copiando o projeto do meu PC para o meu note.
segue a classe de conexao:
package jdbc;
import java.sql.*;
public class ConBD {
public static Connection con = null;
public Statement stm;
private static final String URL = "jdbc:jtds:sqlserver://SQLNOTE/bdteste"; // <-------- OBSERVE ESSA LINHA
private static final String DRIVER = "net.sourceforge.jtds.jdbc.Driver";
private static final String USUARIO = "sa";
private static final String SENHA = "123456";
public static Connection getConnection() throws SQLException{
try{
Class.forName(DRIVER);
System.out.println("Conectando a BD...");
con = DriverManager.getConnection(URL, USUARIO, SENHA);
return con;
}catch (ClassNotFoundException e) {
System.out.println("Falha ao caregar o drive");
throw new SQLException (e.getMessage());
}
}
public Connection desconBD() {
try {
con.close();
}
catch(Exception e) {
e.printStackTrace();
}
return con;
}
}
[/quote]
Creio que o problema está na linha da URL, preste bastante atenção a sequencia da url que vc deve usar tem que ser essa:
String URL = "jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=nomeDoMeuBanco;namedPipe=true"
Onde 127.0.0.1 vc deve substituir pelo ip da maquina do servidor de banco de dados;
1433 vc substituirá pela porta onde está rodando o serviço do seu servidor de banco de dados;
Em seguida vc vai colocar o nome do seu banco;
Pra terminar vc vai marcar o atributo namePipe como true, que representa o tipo de conexão que vc vai utilizar;
Espero ter ajudado!