inflearn logo
강의

講義

知識共有

Spring Bootで実際に作りながら学ぶ大規模システム設計 - キャッシュ戦略

http://localhost:8080/cache-strategy/{{cacheStrategy}}/items 호출 시 NPE 에러 문의

解決済みの質問

132

syh8088

投稿した質問数 77

1

 ------------------------------ 해결 방안-------------------------------

저와 비슷한 이슈가 있으신분은

 

이렇게 처리 부탁드립니다!

 

인텔리제이 설정에서

 

Preferences > Build, Execution, Deployment > Build Tools > Gradle에서

Build and run using : Gradle

Run tests using : Gradle

 

이렇게 수정 하고 다시 시도 부탁드립니다!!!

 

쿠케님 감사합니다 :) 

 

image.png

 

 

안녕하세요 우선 좋은 강의 만들어주셔서 정말 감사드립니다.

GET - http://localhost:8080/cache-strategy/NONE/items/{{itemId}}

 

해당 API 를 호출 하게 되면

ItemController -> KukeCacheAspect -> KukeCacheKeyGenerator -> ItemNoneCacheService 

 

대충 이런 흐름으로 가게 되는데요.

KukeCacheKeyGenerator 객체에서

 

for (int i = 0; i<args.length; i++) {
  context.setVariable(parameterNames[i], args[i]);
}

 

parameterNames 객체에 NPE 에러가 발생 되고 있습니다.

코드는 강의 자료실 통해 제공해주신 코드로 실행 해보았습니다.

 

이 부분 어떻게 수정을 해야 할까요?

 

 

spring-boot redis backend 시스템-디자인 cache

回答 2

1

syh8088

 ------------------------------ 해결 방안-------------------------------

저와 비슷한 이슈가 있으신분은 이렇게 처리 부탁드립니다!

 

인텔리제이 설정에서

Preferences > Build, Execution, Deployment > Build Tools > Gradle에서

Build and run using : Gradle

Run tests using : Gradle

 

이렇게 수정 하고 다시 시도 부탁드립니다!!!

 

쿠케님 감사합니다 :) 

0

kuke

리나님, 안녕하세요!

이번에도 잘 수강해 주셔서 감사합니다.

 

CGLIB이 아닌 JDK Proxy(인터페이스의 파라미터 정보를 보존하지 못함)가 동작하는 것으로 보이고, 로컬 IDE 컴파일 환경에서 차이가 있는건지 싶군요..!

 

KukeCacheKeyGenerator.genKey 메소드에서 아래 출력 결과 공유해주실 수 있을까요?

System.out.println(joinPoint.getThis().getClass());

 

 해결 방법으로는,

인텔리제이 Settings > Build, Execution, Deployment > Compiler > Java Compiler 메뉴에서,

Javac Options > Additional command line parameters에다가 +parameters를 추가해보시겠어요?

class 파일에 파라미터명을 보존하는 설정입니다.

 

위 방법이 안되면, build.gradle에 아래 설정을 추가해보시거나,

tasks.withType(JavaCompile) {
    options.compilerArgs += ["-parameters"]

}

 

KukeCacheApplication에 @EnableAspectJAutoProxy(proxyTargetClass = true)를 추가해보시면 될 것 같습니다!

 

혹시 세 가지 방법 모두 안된다면 다시 말씀 부탁드립니다!

0

syh8088

image.png

말씀 해주신 부분

 

class kuke.cache.service.strategy.none.ItemNoneCacheService$$SpringCGLIB$$0

이렇게 찍혀져 나옵니다. CGLIB 프록시로 정상적으로 프록시 객체 생성 된 것이 아닌가요?

 

image.png

1.인텔리제이 Setting 에서 +parameters 추가

 

image.png

2.build.gradle 파일에 설정 추가

 

image.png

3.@EnableAspectJAutoProxy(proxyTargetClass = true) 추가

 

모두 해보았는데 동일한 NPE 에러가 발생되네요.ㅠ.ㅠ

 

1

kuke

앗 위 방법으로도 해결이 안되었군요.. 제공해드린 프로젝트 코드로 실행해도 동일하게 NPE가 발생하고 있는 상황인 것이죠?

0

kuke

Preferences > Build, Execution, Deployment > Build Tools > Gradle에서

Build and run using : Gradle

Run tests using : Gradle

혹시 이거 Gradle로 해보시겠어요?

0

kuke

그리고 위에 말씀드린 설정들은, build 디렉토리(class 컴파일 파일) 삭제하고 다시 실행해보시길 바랍니다!

0

syh8088

안녕하세요 선생님! 네 해결 했습니다. 정확히

 

Build and run using : Gradle

Run tests using : Gradle

 

이렇게 설정시 왜 해결 되었는지 찾아봐야 겠지만 ㅠㅠ

 

정말 감사합니다.

0

kuke

저도 인텔리제이 자체의 빌드 방식까지 세세하게 파악하고 있진 않은 상황이지만..!

무튼 잘 해결되었다니 다행입니다!

구매후 바로 질문 하나만요..

0

17

1

android crud중 c 영상이 12초만 있는 잘린 영상이에요.

0

15

2

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

0

19

1

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

1

36

1

형 나 몰래 책내면 모를 줄 알고?

1

30

1

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

21

1

차단 등 검증 로직의 위치

0

30

2

ai가 만든 강의인가요?

0

46

1

N+1 관련해서 질문있습니다.

0

34

3

강의 중복 확인 요청

0

26

1

너무 흥미진진합니다..

1

27

2

캐시전략 - Write-behind

0

34

2

중복내용 제보?!

1

48

2

궁금한점이 여러개 생겼습니다.

1

47

1

혹시 수업자료는 다운받을 수 있는 곳이 없나요?

0

37

2

여러 파드 환경에서 단일 실행 보장 방식

0

28

2

수파베이스 ORM 질문

0

33

2

Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문

0

26

1

23강 5:38 부분 질문 있습니다!

0

49

1

23강 17초 부분 질문있습니다~

0

57

2

Split 전략 강의 중 질문 있어요

0

62

2

질문이 있습니다!!

0

78

2

RateLimitTest시 저는 2초로 해야 정상으로 나오는데

0

75

2

섹션3에 22번째 강의에서 에러발생합니다..

0

121

4