Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Spring Boot - Bootstrap SetupMyProject

Pessoal,

Sou novato com Java ( Spring Boot ) e assistindo um vídeo do Professor Alberto Souza me deparei com o seguinte erro na hora de executar o projeto no Eclipse:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.3.RELEASE)

2018-04-18 13:57:03.589  INFO 17076 --- [           main] br.com.dsm.teste2.Boot                   : Starting Boot on DESKTOP-A96VVIF with PID 17076 (E:\Estudo\teste2\target\classes started by Diogo Miranda in E:\Estudo\teste2)
2018-04-18 13:57:03.593  INFO 17076 --- [           main] br.com.dsm.teste2.Boot                   : No active profile set, falling back to default profiles: default
2018-04-18 13:57:03.659  INFO 17076 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@31206beb: startup date [Wed Apr 18 13:57:03 BRT 2018]; root of context hierarchy
2018-04-18 13:57:04.702  WARN 17076 --- [           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2018-04-18 13:57:04.711  INFO 17076 --- [           main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2018-04-18 13:57:04.845 ERROR 17076 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type 'javax.sql.DataSource' that could not be found.
    - Bean method 'dataSource' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'jndi-name'
    - Bean method 'dataSource' not loaded because @ConditionalOnBean (types: org.springframework.boot.jta.XADataSourceWrapper; SearchStrategy: all) did not find any beans


Action:

Consider revisiting the conditions above or defining a bean of type 'javax.sql.DataSource' in your configuration.

Alguém poderia me dizer porque seria?

Grato pela força.

9 respostas

Oi Diogo, tudo certo? Está acusando que o Spring não consegue achar um objeto do tipo 'javax.sql.DataSource'. Você possui uma classe de configuração do JPA ou está com as informações no arquivo application.properties?

Oi Thais, sim possuo.

#spring boot properties
#Wed Apr 18 08:06:18 EDT 2018
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
spring.datasource.password=********
spring.datasource.url=jdbc\:mysql\://localhost:3306/testejava
spring.jpa.hibernate.ddl-auto=update

Certo, você acrescentou a dependência do JPA no pom.xml?

esta aqui:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Segue o pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
  </parent>
  <groupId>br.com.dsm</groupId>
  <artifactId>teste2</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  <dependencyManagement />
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version><!--$NO-MVN-MAN-VER$-->
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl-api</artifactId>
      <version>1.2</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>servlet-api</artifactId>
          <groupId>javax.servlet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jsp-api</artifactId>
          <groupId>javax.servlet.jsp</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>jstl-impl</artifactId>
      <version>1.2</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>servlet-api</artifactId>
          <groupId>javax.servlet</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jsp-api</artifactId>
          <groupId>javax.servlet.jsp</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <!-- version>2.4</version -->
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

Você pode postar todos os erros, a stacktrace completa? Sem ver o código também dificulta achar o erro.

e outra coisa, você esqueceu de colocar esta configuração (do dialeto SQL) no seu arquivo application.properties:

spring.jpa.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

Oi Professora,

A única mensagem que aparece para mim é a que postei aqui no início.

Sobre essa linha, não existia porque eu havia utilizado o bootstrap SetupMyProject.

De qualquer forma, coloquei essa linha no application.properties e ainda continua o mesmo erro.

Uma coisa que percebi é que na mensagem aparece essa frase: "Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled."

Será que habilitando poderia aparecer os detalhes que você mencionou? Se sim, como eu devo proceder para mostrar essa mensagem?

solução!

Você pode rodar no modo debug - clique com o botão direito na classe e selecione a opção 'Debug as'-> 'Java Application'.

Mas antes, exclua a pasta .m2 de sua home. Pode ter acontecido algo com o maven na hora de baixar as dependências. Depois rode novamente.

E se você está utilizando o JPA, não precisa desta dependência:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
    </dependency>

Sucesso Professora.

Após remover a pasta .m2 e baixar as dependências novamente o problema foi solucionado!!!!!!!

Muito obrigado pelas informações.

Legal, Diogo! Então foi isso mesmo, algo aconteceu quando o maven foi procurar alguma dependência. Qualquer nova dúvida sempre procure o fórum e bons estudos!