No JSR-223 scripting engine could be bootstrapped for language "javascript"
강의를 듣던 중 Validation 처리를 위해 @ScriptAssert 를 사용하는데
위처럼 오류가 나타났습니다.
validation annotation 중 @ScriptAssert 은 Java Scripting API의 스크립팅 언어를 지원해주는 기능을 사용합니다.
JDK11부터 Nashorn script API가 Deprecated되었고, JDK 15부터는 Removed되었습니다.
JDK8 ~ JDK14 = NashornVM
저는 JDK17환경에서 개발중이다보니 버전이 맞지 않아 에러가 발생한 것입니다.
JDK 15부터는 Nashorn engine 대신 graalvm 을 쓴다고 하니, 참고합시다.
해결방법으로 이런게 있을 것 같습니다. <제일편한건 1번입니다.>
그러나 어노테이션 의존을 피하고 싶다면, 별도 validation을 구현하는 것도 좋아보입니다.(저는 이게 더 낫습니다. 때문에 4번)
1. Nashorn 의존성 추가, 다시사용하기 위해서 의존성 추가하는 것
implementation 'org.openjdk.nashorn:nashorn-core:15.3'
2. org.graalvm.js 의존성을 추가
3. 별도 멤버변수를 선언하고, 값 입력시 조건에 맞지 않을 경우 flag 등록 및 오류로 읽히게 하기
4. 다른 기능을 통해 validation 구현 (bindingResult 에 조건을 추가한다던지.)
'IT기술 > spring' 카테고리의 다른 글
[Spring] SpEL, Value로 어노테이션에 값 전달하기 (0) | 2024.02.27 |
---|---|
[Spring] 어노테이션 정리 (1) | 2024.02.27 |
[Spring] 하이버네이트 Validator, Bean Validation 빈 벨리데이션이란? (0) | 2024.02.20 |
[Spring] BindingResult 검증도구 (1) | 2024.02.20 |
[Thymeleaf] 스프링에서 웹페이지 만드는 방법3, form 에서 유용한 thymeleaf (0) | 2024.02.19 |