inflearn logo
강의

講義

知識共有

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

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

解決済みの質問

146

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

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

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

3,4장 이후 미션 제출 질문

0

11

1

setter 사용하지 않기

0

14

1

안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?

0

26

2

자막 오타 제보

0

29

1

운영환경에 적용해볼 수 없을때...고민입니다 ㅠㅠ

0

32

1

addToFile function에서 path를 사용해 새로운 파일을 생성

0

35

1

rabbitmq에 configservice 연결에 대해 질문있습니다.

0

30

1

[46강] EventEmitter를 활용한 10가지 패턴 중 플러그인 아키텍처

0

31

2

Int 값들 null 처리

0

24

1

db table 관련질문

0

27

1

지식공유 (윈도우 설치) [실습] 외부 MCP Server와 연동한 실시간 날씨 조회 - MCP Client 개발

0

34

1

자료 다운로드가 안됩니다.

0

34

2

강의가 누락된것 같습니다.

0

38

2

현업에서 prisma relationMode는 사용안하나요?

0

31

1

섹션3에 대한 문의사항

0

60

2

claude-squad 실행 시 로그인 및 권한 문제

0

34

2

examtopics와 krdumps 차이가 나는데요 ㅠ

0

51

1

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

0

34

1

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

0

62

1

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

0

68

2

Split 전략 강의 중 질문 있어요

0

73

2

질문이 있습니다!!

0

84

2

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

0

81

2

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

0

133

4