APPLICATION FAILED TO START

8937 단어 spring-boot도마

이벤트 : required a bean of type HogeDao that could not be found.


  • 환경
  • Windows10 Pro 버전 1909
  • Spring Tool Suite 4 Version: 4.7.2.RELEASE
  • spring-boot-starter-web 2.0.4.RELEASE
  • Gradle 4.3
  • Doma 2.19.3


  • Project Explorer > 프로젝트 선택 > Shift + Alt + D > B (Debug Spring Boot App) 오류
    2021-03-05 14:54:21.791 ERROR 20780 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 
    
    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    Field hogeDao in com.example.service.HogeServiceImpl required a bean of type 'com.example.dao.HogeDao' that could not be found.
    
    
    Action:
    
    Consider defining a bean of type 'com.example.dao.HogeDao' in your configuration.
    

    원인 : 런타임에 필요한 jar가 설정되지 않았기 때문에



    Doma는 Dto의 인터페이스에서 구현 클래스를 생성한다고합니다.
    그 생성되는 구현 클래스를 인젝션할 수 있도록(듯이) 어노테이션을 붙이는 경우는 @AnnotateWith (org.seasar.doma.AnnotateWith)등의 Doma의 어노테이션을 사용해 설정을 실시합니다.
    따라서 실행할 때 Doma가 필요할 것 같습니다.

    참고 : Spring Boot에서 No qualifying bean of type이 나왔을 때의 원인과 대응 - Qiita

    build.gradle을 보면 ... 런타임에 설정하고 있습니다 ...

    build.gradle
    ...省略...
        annotationProcessor "org.seasar.doma:doma:${domaVersion}"
    ...省略...
    

    그럼, Eclipse라든지 STS로 디버그할 때는 어떻게 하면···

    이클립스
    프로젝트의 "Properties"-"Java Compiler"-"Annotation Processing"항목에서 옵션을 등록합니다.
    주석 처리 — Doma 2.0 문서

    대응 : doma.jar


  • [Project Explorer] > 프로젝트 선택 > Alt + Enter 에서 설정 대화 상자 표시
  • [Java Compiler] > [Annotation Processing] > [Enable project specific settings] > ON
  • [Factory Path] > [Add External JARs...]에서 doma.jar 지정 > [Apply and Close] 버튼으로 다이얼로그 닫아 재빌드
  • 이번에는 Gradle을 사용하고 있었기 때문에 로컬의 .gradle 폴더에있는 doma.jar를 사용했다 (다운로드하지 않는 세코).

  • Maven Repository: org.seasar.doma » doma 에서 다운로드할 수도 있습니다

  • 다시 실행

  • 이벤트 : Web server failed to start. Port 8080 was already in use.


  • 환경
  • macOS Bit Sur 버전 11.1
  • Eclipse IDE for Enterprise Java Developers Version: 2020-12 (4.18.0)

  • 2021-03-04 20:55:43.295 ERROR 34134 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 
    
    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    Web server failed to start. Port 8080 was already in use.
    
    Action:
    
    Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
    
    

    원인 : 부팅 확고한 Tomcat이 있기 때문에



    아, 그만두는 것을 잊었다.

    대응 : 움직이지 않는 Tomcat을 멈춘 후 기동





    이벤트 : Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.


  • 환경
  • macOS Bit Sur 버전 11.1
  • Eclipse IDE for Enterprise Java Developers Version: 2020-12 (4.18.0)


  • Spring Initializr - spring.io 에서 Spring Boot 프로젝트를 다운로드하고 Eclipse에 맘포로 자, 일단 실행! 할 수 없었다.
    2021-03-04 19:44:08.805 ERROR 33968 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 
    
    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    
    Reason: Failed to determine a suitable driver class
    
    
    Action:
    
    Consider the following:
        If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
        If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
    

    원인 : MyBatis를 설정하지 않고 사용하려고하기 때문에



    그러고 보니・・・나중에 사용한다고 생각해 MyBatis를 의존관계에 넣고 있었다.

    pom.xml
    <!--省略-->
        <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.1.4</version>
        </dependency>
    <!--省略-->
    

    대응 : DB의 연결 정보를 설정하거나 종속성을 지 웁니다.



    이번에는 pom.xml에서 MyBatis 부분을 코멘트 아웃하고 사용할 때 application.properties 등으로 설정하기로 했다.
    코멘트 아웃 한 후에는 잊지 말고 Maven 빌드하고 다시 실행한다.
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.3.8.RELEASE)
    
    2021-03-04 20:57:03.258  INFO 34146 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication on ponMac.local with PID 34146 (/Users/mananakai/tryJava/springBoot/target/classes started by mananakai in /Users/mananakai/tryJava/springBoot)
    2021-03-04 20:57:03.260  INFO 34146 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to default profiles: default
    2021-03-04 20:57:03.988  INFO 34146 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2021-03-04 20:57:03.996  INFO 34146 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2021-03-04 20:57:03.996  INFO 34146 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.41]
    2021-03-04 20:57:04.048  INFO 34146 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2021-03-04 20:57:04.048  INFO 34146 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 744 ms
    2021-03-04 20:57:04.201  INFO 34146 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
    2021-03-04 20:57:04.309  WARN 34146 --- [           main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
    2021-03-04 20:57:04.376  INFO 34146 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2021-03-04 20:57:04.386  INFO 34146 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 6.402 seconds (JVM running for 6.668)
    

    좋은 웹페이지 즐겨찾기