ScriptEngine Javascript в Springboot с Java 17JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 ScriptEngine Javascript в Springboot с Java 17

Сообщение Anonymous »

Мне нужно перенести проект с предыдущей версии Java на Java 17.
Во время миграции я столкнулся с проблемой, связанной с ScriptEngine при оценке выражения Javascript.

Код: Выделить всё

ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
вернуть ноль
Итак, во время выполнения у меня возникло исключение NullPointerException.
Ищу решение, которое я нашел что теперь нашорн находится в отдельной библиотеке и мне нужно добавить зависимость

Код: Выделить всё

org.openjdk.nashorn
nashorn-core
15.4

Я попробовал, и теперь это работает.
Затем я нашел еще одно руководство, рекомендующее использовать graalvm:

graalvm .org
и я попробовал повторить инструкцию, но не могу добиться того же результата, как будто чего-то не хватает.
Мой проект состоит только из этого pom.xml:

Код: Выделить всё

org.springframework.boot
spring-boot-starter-parent
3.2.5
  


17



org.springframework.boot
spring-boot-starter


org.graalvm.js
js-scriptengine
23.0.4


org.graalvm.js
js
23.0.4



org.projectlombok
lombok
true


org.springframework.boot
spring-boot-starter-test
test






org.springframework.boot
spring-boot-maven-plugin



org.projectlombok
lombok








maven_central
Maven Central
https://repo.maven.apache.org/maven2/


и тест:

Код: Выделить всё

@Slf4j
@SpringBootTest
class EngineTest {

@Test
void factoryTest(){
ScriptEngineManager manager = new ScriptEngineManager();
assertFalse(manager.getEngineFactories().isEmpty());
}

@Test
void test1(){
assertNotNull(getScriptEngineByName("js"));
}

@Test
void test2(){
assertNotNull(getScriptEngineByName("Javascript"));
}

@Test
void test3(){
assertNotNull(getScriptEngineByName("JavaScript"));
}

@Test
void test4(){
assertNotNull(getScriptEngineByName("graal.js"));
}

@Test
void test5(){
assertNotNull(getScriptEngineByExtension("js"));
}

@Test
void test6(){
assertNotNull(getScriptEngineByExtension("Javascript"));
}

@Test
void test7(){
assertNotNull(getScriptEngineByExtension("JavaScript"));
}

@Test
void test8(){
assertNotNull(getScriptEngineByExtension("graal.js"));
}

private ScriptEngine getScriptEngineByName(String name){
ScriptEngineManager manager = new ScriptEngineManager();
return manager.getEngineByName(name);
}

private ScriptEngine getScriptEngineByExtension(String extension){
ScriptEngineManager manager = new ScriptEngineManager();
return manager.getEngineByExtension(extension);
}
}
Если я запущу тесты, все они провалятся. Что не так с этим исполнением?

Подробнее здесь: https://stackoverflow.com/questions/784 ... th-java-17
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»