Fala galera, eu estou fazendo o curso de Servlet’s da Alura e estou tentando usar um Banco de Dados MySQL na aplicação que é ensinada no curso(CRUD de empresas), porém estou com um problema na hora da execução.
Essa é a seguinte pilha de erros:
out. 11, 2020 4:15:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [br.com.alura.servlet.ListaEmpresaServlet] in context with path [/sistema] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource
** at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)**
** at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)**
** at br.com.alura.factory.ConnectionFactory.(ConnectionFactory.java:15)**
** at br.com.alura.servlet.ListaEmpresaServlet.doGet(ListaEmpresaServlet.java:29)**
** at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)**
** at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)**
** at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)**
** at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)**
** at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)**
** at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)**
** at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)**
** at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)**
** at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)**
** at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)**
** at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)**
** at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)**
** at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)**
** at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)**
** at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)**
** at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)**
** at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)**
** at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)**
** at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)**
** at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)**
** at java.base/java.lang.Thread.run(Thread.java:832)**
Vou postar a minha classe ConnectionFactory aqui:
package br.com.alura.factory;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class ConnectionFactory implements AutoCloseable{
public DataSource dataSource;
public ConnectionFactory() {
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setJdbcUrl("jdbc:mysql://localhost/banco_empresa?useTimezone=true&serverTimezone=UTC");
cpds.setUser("root");
cpds.setPassword("root");
this.dataSource = cpds;
}
public Connection getConexao() throws SQLException {
return this.dataSource.getConnection();
}
@Override
public void close() throws Exception {
}}
Eu segui todo o passo a passo e toda a ideia de execução do curso de JDBC da Alura, porém acontece esse erro mesmo eu tendo colocado os drivers do BD na pasta do projeto.
É minha primeira vez que estou tentando conectar um BD a uma aplicação Java que não seja a do curso de JDBC.
Não sei se antes de eu conectar o BD eu tenha que fazer uma configuração em algum lugar para a aplicação conseguir funcionar com o BD. Ainda sou iniciante na programação rsrrs, então desculpem caso eu tenha feita uma grave ignorância.