Problemas com servlet, tomcat

4 respostas
U

Boa tarde galera.
Sou novo em programação.
E estou enfrentando um problema.

Quando tento acessar o banco via console direto.
Uma classe com main, chama a minha dao e insere no banco. Isso funciona.
Mas quando chamo o mesmo método da dao na servlet, não conecta com o banco.

package br.com.pf1.banco;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {

		//metodo para buscar uma nova conexão
		public Connection getConnection(){
				Connection conn = null;
			try {
					Class.forName("com.mysql.jdbc.Driver");
					conn = DriverManager.getConnection("jdbc:mysql://localhost/padaria","root","1234");
				} catch (ClassNotFoundException e) {
					e.printStackTrace();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			return conn;
		}
}


public class ProdutoDao {
	
	private Connection conexao;

	public ProdutoDao(){
		conexao = new Conexao().getConnection();
	}

	//método para inserir um produto no banco de dados
	public void inserirProduto(Produto produto) throws ErroDeConexaoException, ErroDeGravacaoException {
		String sql = "insert into produto (codigoDeBarras, descricao, validade, quantidadeEmEstoque, preco) values (?, ?, ?, ?, ?)";

		PreparedStatement pr;
		try{
			pr = conexao.prepareStatement(sql);
			// seta os valore
			pr.setInt(1, produto.getCodigoDeBarras());
			pr.setString(2, produto.getDescricaoProduto());
			pr.setString(3, produto.getValidadeProduto());
			pr.setDouble(4, produto.getQuantidadeEmEstoqueProduto());
			pr.setDouble(5, produto.getPrecoProduto());
			//executando a query
			pr.execute();
			//fechando
			pr.close();
		} catch (SQLException e) {
			throw new ErroDeGravacaoException();
		}
	}//Fim do método inserir


public class ProdutoServlet extends HttpServlet{
	
private static final long serialVersionUID = 1L;
	
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}//Fim método doGet
	
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		//variavel acao para receber a opçao que o usuario deseja executar

		String acao = req.getParameter("acao");

		//IFs testando qual foi a opção escolhida
		if("cadastrar".equals(acao)){
			//cria um objeto produto
			Produto produto = new Produto();
			//seta os valores para produto
			produto.setCodigoDeBarras(Integer.parseInt(req.getParameter("codigoDeBarras")));
			produto.setDescricaoProduto(req.getParameter("descricaoProduto"));
			produto.setValidadeProduto(req.getParameter("dataDeValidade"));
			produto.setQuantidadeEmEstoqueProduto(Double.parseDouble(req.getParameter("quantidadeEmEstoque")));
			produto.setPrecoProduto(Double.parseDouble(req.getParameter("precoProduto")));

			//Cria o Obejto produtoDao para gravar no banco
			ProdutoDao produtoDao = new ProdutoDao();
			try{
				try {
					produtoDao.inserirProduto(produto);
				}catch (ErroDeConexaoException e) {
					resp.sendRedirect("produto/erros/erroDeConexao.jsp");
				}
				req.setAttribute("produto", produto);
				RequestDispatcher rd = req.getRequestDispatcher("produto/sucesso/sucessoCadastroProduto.jsp");
				rd.forward(req, resp);
			} catch (ErroDeGravacaoException e) {
				resp.sendRedirect("produto/erros/erroDeGravacao.jsp");
			}
		}//FIm da opçao cadastrar

4 Respostas

asousaj

Mostra a pilha de erro.
Pra facilitar.

U

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at br.com.pf1.banco.Conexao.getConnection(Conexao.java:15) at br.com.pf1.dao.ProdutoDao.<init>(ProdutoDao.java:24) at br.com.pf1.servlet.ProdutoServlet.doPost(ProdutoServlet.java:46) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Out 22, 2013 5:51:02 PM org.apache.catalina.core.StandardWrapperValve invoke Grave: Servlet.service() for servlet [ProdutoServlet] in context with path [/PFI] threw exception java.lang.NullPointerException at br.com.pf1.dao.ProdutoDao.inserirProduto(ProdutoDao.java:33) at br.com.pf1.servlet.ProdutoServlet.doPost(ProdutoServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

danillonc

Provavelmente está faltando o jar do driver de conexão.

Verifique se o jar está na sua pasta lib da aplicação.

U

Obrigado…
Isso mesmo,
Eu estava colocando dentro da pasta WebContent.

Criado 22 de outubro de 2013
Ultima resposta 22 de out. de 2013
Respostas 4
Participantes 3