본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/spring

[Spring] No JSR-223 scripting engine could be bootstrapped for language "javascript" 오류 해결

by 미노드 2024. 2. 20.

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 에 조건을 추가한다던지.)