해결된 질문
작성
·
3.4K
1
안녕하세요. 주말 잘 쉬고 계신지요. 다름이 아니라 갑자기 문제가 발생되어 문의드립니다.
queryDsl을 통해 generated 된 java 파일 생성하고 정상빌드가 되었지만
Runtime시 Q파일을 찾지못하여, noClassDefFoundError가 발생됩니다.
증상
- complie시 문제 없음, Runtime시 문제발생
- jar/war 생성후 실행시 문제 없음
- IDE(visual studio code) Debug에서 발생
- 1일주일 전에는 발생되지 않았음 (업데이트와 관련있어 보입니다.)
- 일주일 사이에는 배포( docker ) 작업만 진행
시도방법 ( 해결되지 않음 )
- build.gradle 내 querydslDir 위치 변경
- classpath 에 querydslDir 추가
- modulepath 에 querydslDir 추가
- sourcepath 에 에 querydslDir 추가
build.gradle
Querydsl을 사용하시면서 그간 경험상 해당 문제를 접해보신 적이 있거나, 의심되는 부분이 있으신지요?
감사합니다.
답변 8
5
어쩌다보니 자답입니다 ....
질문글을 지울까 하다가 다른분들에게 혹시 도움일 될까 싶어 글 남깁니다.
Visual studio code Spring framework tools 중
Debugger for java 버전이 3일 전에 업데이트 되면서 발생된 문제
0.26 -> 0.25.1 다운그레이드로 해결
1
안녕하세요.
시간이 많이 지났는데, 저도 Q파일이 생성은 되지만, 참조가 안되는 현상이 있었고,
방법을 찾아서 여기에 남깁니다.
현재 플러그인 버전은 아래와 같구요,
Debugger for Java v0.36.0
Test Runner for Java v0.32.0
Q파일 생성 이후에 build.gradle 파일을 한번 저장하면
classpath 파일과 동기화할꺼냐고 물어보는 메시지가 나오는데 Now를 눌러 파일 업데이트를 해 주면 참조가 정상적으로 이루어집니다.
예전 글에는 .classpath 파일의 classpathentry 를 직접 수정하는 것이 나오는데, 그 방법을 적용하지 않아도 테스트가 성공하였네요.
참고가 되었으면 좋겠습니다.
1
확인을 좀 더 해보니 현재 개발중인 코드에서는 문제가 없었는데,
이전 소스를 git에서 받아서 테스트 해보니 Qclass 참조가 안되네요
그래서 좀 찾아봤는데 최근에 Java Test Runner, Debugger for java 가 업데이트 되었습니다.
다시 downgrade 시켜서 실행해 보니 잘 동작하더군요.
버전을 아래와 같이 수정하시고
0.22.4
0.25.1
- 터미널
.\gradlew clean
.\gradlew class
- Vscode
Ctrl + Shift + p > clear the java language server workspace
수고하세요
1
안녕하세요
vscode에서 현재 정상 동작됩니다 .
우선 vscode에서 spring을 사용하기위한 Extenstions 버전을 확인해 보시면 좋을 것 같습니다.
아래와 같은 버전인지 확인해 주시고 Debugger for java는 아래 버전(0.25.1)으로 맞춰주세요
그리고 build.gradle 파일을 //querydsl 주석 위주로 본인 코드와 비교해 보시면 될 것 같습니다.
1
0
저역시 명확한 답을 얻지 못하였습니다.
현재는 다운그래이드해서 사용중이지만 본질적인 문제해결이 아니라서 답답한 면이 있습니다.
정확한 이유를 알게되면 답변 달도록 하겠습니다.
수고하세요
0
0
질문자님께 문의드립니다.ㅠ
Vscode tool에서 qclass파일은 생성되지만 코드에서 사용시 참조는 되지않는데요..혹시 되시는건가요? ㅠㅠ 가능하시면 답변 부탁드려요..
구글링 하던 중 도움 받았습니다. 감사합니다!!