inflearn logo
강의

講義

知識共有

本当!コトリンとスプリングブートで図書館アプリケーションを開発する(Javaプロジェクトリファクタリング)

12強。ドメイン階層をKotlinに変更する - Book.java

12강에서 영상과 다른 오류가 발생합니다.

301

doll

投稿した質問数 2

1

bookRepository.save(Book("이상한 나라의 엘리스"))
해당 코드에서 오류가 발생하는데요

java.lang.NoSuchMethodError: 'void com.group.libraryapp.domain.book.Book.<init>(java.lang.String)'
이런 메세지가 뜨면서 동작을 안하네요.

init 메서드 관련해서 이슈가 있어 보이는데 감이 안오네요...

spring-boot spring kotlin java refactoring

回答 2

1

doll

다시 빌드 후 실행하니깐 정상적으로 동작하네요

답변 감사합니다!

0

lannstark

오~ 다행입니다 ㅎㅎㅎㅎ 언제든지 어려운 점 있으시면 편하게 질문 주세요~!!!

감사합니다!!!

0

lannstark

안녕하세요 프로그램님!!! 

java.lang.NoSuchMethodError: 'void com.group.libraryapp.domain.book.Book.<init>(java.lang.String)' 이라는 에러가 나오는군요 😭

12강에서 나셨다면 현재 도메인 객체인 Book만 코틀린으로 바뀐 상황인 것으로 추측됩니다!!

 

우선 예상되는 해결책은 다음과 같습니다!!

1. jpa 플러그인이 잘 적용되어 있는지 확인한다 

// build.gradle
plugins {
  id "org.jetbrains.kotlin.plugin.jpa" version "1.6.21"
}

 

2. reflect 의존성이 잘 적용되어 있는지 확인한다

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-reflect:1.6.21")
}

 

3. 혹시나 Book.kt가 아래 코드와 다른 점이 있는지 확인한다 <--- 아마 이 확률이 제일 높을 것 같습니다!! 그 이유는 아래서 설명드리겠습니다!

 

제가 3번의 확률이 제일 높을 것 같다고 생각하는 이유는, 해당 에러가 Book 클래스의 '기본 생성자'가 없을 때 나는 에러라는 검색 결과가 있기 때문입니다!!

(제 블로그는 아니지만 관련 blog를 찾았어요! https://soobindeveloper8.tistory.com/244)

 

조금 더 정확히는 현재 에러에서 <init>(java.lang.String) 이라고 되어 있는데요! 이는 아마 Book 클래스의 생성사 중에 String만을 가지는 생성자가 없다는 의미 같습니다!

즉, java로 치면 new Book(String name) 라고 타이핑 할 수 없다는 것이죠!

 

그리고 적어주신 bookRepository.save(Book("이상한 나라의 엘리스"))는 문법을 보았을 때 Kotlin 문법을 사용하신 것으로 추정됩니다!! (즉 테스트 코드인 것 같아요!!)

여기서 import 하고 있는 Book이 정말 Kotlin Class Book인지, 그렇다면 그 Kotiln Class Book의 생성자 중에 default parameter 등을 사용해 String만을 가질 수 있는 생성자가 있는지 확인해보시면 더욱 좋을 것 같습니다~!

이때 Book.kt 파일을 Java로 Decompile 해보시면 생성자를 조금 더 자세히 확인하실 수 있을 겁니다! 고생 너무너무 많으십니다!! 👍👍

 

질문 주셔서 감사합니다 ㅎㅎㅎㅎ 꼭 해결 되었으면 좋겠네요~!! 🔥

 

혹시나 계속해서 진행이 어려우시다면, 번거로우시겠지만 관련 코드를 스샷해주시거나 프로젝트 전체를 압축해주시면 제가 한 번 확인해보도록 하겠습니다!!!

 

감사합니다! 좋은 밤 되세요!!! 🙏🙇

안녕하세요 혹시 프론트 코드 제공받을 수 있을까요?

0

67

2

실행이 안되네요

0

65

2

프론트 영역 보는법

0

51

2

companion object

0

75

2

Custom 레프직토리 형식

0

56

2

Querydsl 도입

0

67

2

fetch join DISTINCT 중복제거

1

82

2

표준 예외와 커스텀 예외 사용 전략 질문

0

85

3

이 질문이 왜 없는지 이해가 안 되지만 문제 인식 및 해결 방법 남깁니다.

1

177

2

테스트를 위한 코드

1

105

2

프로젝트 실행 에러

0

150

2

PDF 문서에 오타가 있어서 알려드립니다.

1

102

1

enum질문

1

86

1

테스트 후 AfterEach 함수에서 나오는 쿼리

0

136

2

테스트 fixture

1

210

2

./gradlew test 실행시 인식할수 없다고 뜹니다.

0

140

1

test 코드 실행시 경고가 발생합니다.

0

140

1

13강 User Kotlin 변환중

2

169

3

'추가 - 코프링과 플러그인' 강의 7:46 allopen 관련 질문

2

174

1

-

0

141

2

4:28 build.gradle 수정 시 kotlin-reflect관련 implementation 추가 해야할까요?

0

310

3

junit import 불가

0

269

3

테스트 코드와 관련하여 질문이 있습니다.

1

216

1

hibernate가 select를 두번 하는 이유

0

237

1