Senhores,
Estou tentando criar um projeto com Spring Boot em que os dados serão persistidos no MySQL.
Porém, ao tentar realizar o teste inicial, tenho recebido uma mensagem de erro bastante irritante.
Eis meus códigos:
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.czar</groupId>
<artifactId>mcbshop</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
`
Categoria.java:
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "CATEGORIAS")
public class Categoria extends ClassePersistente {
private static final long serialVersionUID = -7258188290310179136L;
private String descricao;
private String nome;
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String toString() {
return "Categoria: id: " + getId() + "\nNome: " + getNome() + "\nDescrição: " + getDescricao();
}
}`
CategoriaRepository.java:
`import org.springframework.data.repository.CrudRepository;
import br.com.czar.macumbashop.model.entities.Categoria;
public interface CategoriaRepository extends CrudRepository<Categoria, Long> {
}`
CategoriaController.java:
`@RestController
public class CategoriaController {
@Autowired
private CategoriaRepository repo;
@ResponseBody
@RequestMapping("/categoria/adicionar")
public ResponseEntity<Categoria> adicionarCategoria(@RequestBody Categoria categoria) {
System.out.println(categoria);
repo.save(categoria);
ResponseEntity<Categoria> re = new ResponseEntity<Categoria>(categoria, HttpStatus.OK);
return re;
}
}
`
Application.java:
`import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableAutoConfiguration
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
E o erro:
java.sql.SQLException: Unable to load class: com.mysql.jdbc.Driver from ClassLoader:sun.misc.Launcher$AppClassLoader@73d16e93;ClassLoader:sun.misc.Launcher$AppClassLoader@73d16e93
atorg.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:283)~[tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)~[tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:718)[tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:650)[tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468)[tomcat-jdbc-8.5.5.jar:na]
at org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.java:143) [tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)[tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)[tomcat-jdbc-8.5.5.jar:na]
atorg.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:131)[tomcat-jdbc-8.5.5.jar:na]
atorg.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:254)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:228)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:207)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:847)[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
atorg.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:874)[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]
atorg.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353)[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:373)[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:362)[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
atorg.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
atorg.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
atorg.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
atorg.springframework.boot.SpringApplication.run(SpringApplication.java:315)[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1186)[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1175)[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
Alguma sugestão?