#maven #junit #java-17
Вопрос:
Если я запускаю тест Junit приложения с Java17 (до того, как приложение было создано с помощью Java8), я получаю эти проблемы:
java.lang.reflect.InaccessibleObjectException: Unable to make void java.text.DecimalFormatSymbols.setPerMillText(java.lang.String) accessible: module java.base does not "opens java.text" to unnamed module @6a1aab78 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) Caused by: java.lang.NullPointerException: Cannot invoke "de.reply.arlanis.vw.dwa.base.db.model.DwaApplication.getMarkets()" because "this.app" is null at de.reply.arlanis.vw.dwa.base.db.model.DwaApplicationTest.initApp(DwaApplicationTest.java:52) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) at org.mockito.internal.runners.DefaultInternalRunner$1$1.evaluate(DefaultInternalRunner.java:54) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:99) at org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:105) at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:40) at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:43) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
Здесь есть исключение NullPointerException, на dwaApplicationService.getDwaApp();
@Before public void initApp() throws Exception { app = dwaApplicationService.getDwaApp(); for (Market m : app.getMarkets()){ ...
Комментарии:
1. Может быть:
Unable to make void java.text.DecimalFormatSymbols.setPerMillText(java.lang.String) accessible: module java.base does not "opens java.text" to unnamed module
… вы используетеmodule-info.java
файл?2. Нет, я не вижу этого файла в проекте….
3. Я решил добавить этот арглин в свой pom.xml: lt;плагинgt; lt;плагинgt;lt;Идентификатор группыgt;org.apache.maven.pluginslt;Идентификатор группыgt;lt;/Идентификатор группыgt; lt;/Идентификатор группыgt;lt;Идентификатор группыgt;maven-надежный плагинlt;идентификатор группыgt;lt;/идентификатор группыgt; lt;/идентификатор группыgt;lt;зависимостиgt; lt;зависимостиgt;lt;зависимостьgt; lt;идентификатор группыgt;org.apache.maven.надежныйlt;Идентификатор группыgt;lt;/Идентификатор группыgt;lt;Идентификатор группыgt; lt;идентификатор группыgt;lt;идентификатор группыgt;lt;идентификатор группыgt;lt;идентификатор группыgt; lt;идентификатор группыgt;surefire-junit47lt;Идентификатор группыgt;lt;/artifactIdgt;lt;/artifactIdgt; lt;версияgt;${maven-surefire-plugin.версия}lt;версияgt; lt;/версияgt;lt;/версияgt; lt;/зависимостьgt;lt;/зависимостьgt; lt;/зависимостиgt;lt;/зависимостиgt;lt;конфигурацияgt;lt;конфигурацияgt; lt;аргЛайнgt;—добавить-открывает java.база/java.текст=ВСЕ БЕЗЫМЯННЫЕlt;аргЛайнgt; lt;/аргЛайнgt;lt;/аргЛайнgt; lt; /конфигурация gt; lt; /конфигурация gt; lt; /плагин gt;