Al usar el código de verificación de captcha fácil, aparece javax.script ScriptEngine.eval(String)" porque "motor" es nulo

1. Preguntas

El proyecto java utiliza el código de verificación ArithmeticCaptcha y aparece javax.script ScriptEngine.eval(String)" porque "motor" es nulo

ArithmeticCaptcha captcha = new ArithmeticCaptcha(111, 36);
<dependency>
    <groupId>com.github.whvcse</groupId>
    <artifactId>easy-captcha</artifactId>
    <version>1.6.2</version>
</dependency>

2. Análisis de problemas

nashornSe eliminó el motor de JavaScript incorporado en Jdk8 , lo que resultó en un error al usar el código de verificaciónCannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null

com.github.whvcse包的easy-captchaLa dependencia del código de verificación se usa en el proyecto Después de actualizar a Jdk17, la interfaz del código de verificación informa un error Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null:

La causa del error es obvia. El motor de secuencias de comandos ejecuta la instrucción de la secuencia de comandos e informa de un error porque el motor de ejecución está vacío.

Consultar información relevante El motor de JavaScript que viene con Jdk8 nashornse eliminó después de actualizar a Jdk9, lo que generó un error

3. Soluciones

Agregue dependencias del motor de JavaScript al archivo pom nashorny reinicie el proyecto

<dependency>
    <groupId>org.openjdk.nashorn</groupId>
    <artifactId>nashorn-core</artifactId>
    <version>15.4</version>
</dependency>

 

Supongo que te gusta

Origin blog.csdn.net/liyh722/article/details/131479181
Recomendado
Clasificación