Вопросы по тегу: java-9

(12)

javax.xml.bind.JAXBException Реализация JAXB-API не найдена в пути к модулю или пути к классам

Я пытаюсь запустить свое приложение Spring Boot на Java 9 и столкнулся с проблемой JAXB, которая описана в руководствах, но у меня не работает. Я добавил зависимость от JAXB API, и приложение заработало. Если вы получаете следующее исключение из-за отсутствия реализации JAXB с использованием версии Java >=9:javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath. at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:177) ~[jaxb-api-2.3.0.jar:2.3.0] at javax.xml.bind.ContextFinder.find(ContextFinder.java:364) ~[jaxb-api-2.3.0.jar:2.3.0] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508) ~[jaxb-api-2.3.0.jar:2.3.0] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:465) ~[jaxb-api-2.3.0.jar:2.3.0] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:366) ~[jaxb-api-2.3.0.jar:2.3.0] at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.(WadlApplicationContextImpl.java:107) ~[jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.wadl.WadlFactory.init(WadlFactory.java:100) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.RootResourceUriRules.initWadl(RootResourceUriRules.java:169) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.RootResourceUriRules.(RootResourceUriRules.java:106) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) [jersey-core-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790) [jersey-server-1.19.1.jar:1.19.1] at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509) [jersey-servlet-1.19.1.jar:1.19.1] at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339) [jersey-servlet-1.19.1.jar:1.19.1] at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605) [jersey-servlet-1.19.1.jar:1.19.1] at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) [jersey-servlet-1.19.1.jar:1.19.1] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) [jersey-servlet-1.19.1.jar:1.19.1] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:744) [jersey-servlet-1.19.1.jar:1.19.1] at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:106) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417) [tomcat-embed-core-9.0.10.jar:9.0.10] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-embed-core-9.0.10.jar:9.0.10] at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) [na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417) [tomcat-embed-core-9.0.10.jar:9.0.10] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-embed-core-9.0.10.jar:9.0.10] at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) [na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:258) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:371) [tomcat-embed-core-9.0.10.jar:9.0.10] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:107) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:86) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:413) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:174) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:179) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:152) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) [spring-context-5.1.0.RC1.jar:5.1.0.RC1] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:769) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1252) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1240) [spring-boot-2.1.0.M1.jar:2.1.0.M1] at io.eureka.server.EurekaServerApp.main(EurekaServerApp.java:21) [classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.1.0.M1.jar:2.1.0.M1] Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.loadClass(TomcatEmbeddedWebappClassLoader.java:70) ~[spring-boot-2.1.0.M1.jar:2.1.0.M1] at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1138) ~[tomcat-embed-core-9.0.10.jar:9.0.10] at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122) ~[jaxb-api-2.3.0.jar:2.3.0] at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155) ~[jaxb-api-2.3.0.jar:2.3.0] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:174) ~[jaxb-api-2.3.0.jar:2.3.0] ... 66 common frames omitted
S

S34N

3 года назад

Ответов: 1

Почему Map.of не разрешает нулевые ключи и значения?

В Java 9 введены новые фабричные методы для интерфейсов List, Set и Map. Эти методы позволяют быстро создать экземпляр объекта Map со значениями в одной строке. Теперь, если мы посчитаем: Map map1 = new HashMap(Map.of(1, "value1", 2, "value2", 3, "value3")); map1.put(4, null); Вышеупомянутое разрешено без каких-либо исключений, а если мы делаем:Map map2 = Map.of(1, "value1", 2, "value2", 3, "value3", 4, null ); Выдает:Exception in thread "main" java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:221) .. Я не могу получить, почему null не допускается во втором случае.Я знаю, что HashMap может принимать null как ключ, так и значение, но почему это было ограничено в случае Map.of?То же самое происходит в случае java.util.Set.of("v1", "v2", null) и java.util.List.of("v1" , "v2", null).
h

hi.nitish

5 лет назад

Ответов: 8

Failed to run sdkmanager --list with Java 9

I downloaded and installed: JDK (jdk-9.0.1_osx-x64_bin.dmg) from Oracle here Android SDK (sdk-tools-darwin-3859397.zip) from Google here. After configuring the PATH variable, I tried running sdkmanager, which replaced the android command for managing SDK components. However, it failed as shown here: $ sdkmanager --list Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156) at com.android.repository.api.SchemaModule.(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81) at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117) at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ... 5 more Here is the Java version: $ java -version java version "9.0.1" Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode) Does anyone know how to fix it without going back to Java 8? Related Questions Failed to install android-sdk: "java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema" This post asked a similar question. However, the post is closed and the only answer suggests going back to Java 8. WARNING Please note that I already mentioned above that going back to Java 8 or running it side-by-side is NOT what I wanted.
S

Siu Ching Pong -Asuka Kenji-

4 года назад

Ответов: 30

What is an illegal reflective access?

There are a lot of questions about illegal reflective access in Java 9.I have found plenty of discussion about working around the error messages, but I would love to know what an illegal reflective access actually is.So my question is:What defines an illegal reflective access and what circumstances trigger the warning?I have gathered that it has something to do with the encapsulation principles that were introduced in Java 9, but I can't find an explanation of how it all hangs together, what triggers the warning, and in what scenario.
T

Tschallacka

4 года назад

Ответов: 5

What is the difference between List.of and Arrays.asList?

Java 9 introduced new factory methods for lists, List.of:List strings = List.of("first", "second"); What's the difference between the previous and the new option? That is, what's the difference between this:Arrays.asList(1, 2, 3); and this:List.of(1, 2, 3);
u

user5908494

4 года назад

Ответов: 5

Что такое флаг --release в компиляторе Java 9?

Java 9 javac имеет новый флаг - выпуск:> javac --help ... --release Compile for a specific VM version. Supported targets: 6, 7, 8, 9 Чем он отличается от флагов -source и -target? Это просто ярлык для -source X -target X?
Z

ZhekaKozlov

5 лет назад

Ответов: 2

Как устранить InaccessibleObjectException («Невозможно сделать {member} доступным: модуль {A} не« открывает {package} »для {B}») в Java 9?

Это исключение возникает в самых разных сценариях при запуске приложения на Java 9. Некоторые библиотеки и фреймворки (Spring, Hibernate, JAXB) особенно подвержены этому. Вот пример от Javassist:java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @1941a8ff at java.base/jdk.internal.reflect.Reflection.throwInaccessibleObjectException(Reflection.java:427) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:201) at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:192) at java.base/java.lang.reflect.Method.setAccessible(Method.java:186) at javassist.util.proxy.SecurityActions.setAccessible(SecurityActions.java:102) at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:180) at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163) at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501) at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486) at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422) at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394) В сообщении написано: Невозможно сделать защищенный конечный java.lang.Class java.lang.ClassLoader.defineClass (java.lang.String, byte [], int, int, java.security.ProtectionDomain) вызывает java.lang.ClassFormatError доступным: модуль java.base не «открывает java.lang» для безымянного модуля @ 1941a8ff Что можно сделать, чтобы избежать исключения и успешно запустить программу?
N

Nicolai Parlog

5 лет назад

Ответов: 16

Как объединение строк реализовано в Java 9?

Как написано в JEP 280: Указать конкатенацию строк: Измените последовательность байт-кода статической String-конкатенации, сгенерированную javac, чтобы использовать вызовы invokedynamic к функциям библиотеки JDK. Это позволит в будущем оптимизировать конкатенацию String, не требуя дальнейших изменений байт-кода, созданного javac. Здесь я хочу понять, в чем заключается использование вызовов invokedynamic и чем конкатенация байт-кода отличается от invokedynamic?
M

Mohit Tyagi

4 года назад

Ответов: 3

Observer is deprecated in Java 9. What should we use instead of it?

Java 9 came out, and Observer has been deprecated. Why is that? Does it mean that we shouldn't implement observer pattern anymore? It would be good to know what is a better alternative?
c

curious95

4 года назад

Ответов: 5

Не удалось установить android-sdk: "java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema"

При установке android sdk tools выдается следующая ошибка: java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema Почему это происходит и как это исправить?Вывод отладки:$ java --version java 9 Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) $ brew cask install android-sdk ==> Caveats We will install android-sdk-tools, platform-tools, and build-tools for you. You can control android sdk packages via the sdkmanager command. You may want to add to your profile: 'export ANDROID_SDK_ROOT=/usr/local/share/android-sdk' This operation may take up to 10 minutes depending on your internet connection. Please, be patient. ==> Satisfying dependencies ==> Downloading https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip Already downloaded: /Users/tomasnovella/Library/Caches/Homebrew/Cask/android-sdk--3859397,26.0.1.zip ==> Verifying checksum for Cask android-sdk ==> Installing Cask android-sdk ==> Exception in thread "main" ==> java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema ==> at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156) ==> at com.android.repository.api.SchemaModule.(SchemaModule.java:75) ==> at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81) ==> at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117) ==> at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93) ==> Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema ==> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) ==> at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) ==> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ==> ... 5 more Error: Command failed to execute! ==> Failed command: /usr/local/Caskroom/android-sdk/3859397,26.0.1/tools/bin/sdkmanager tools platform-tools build-tools;26.0.1 ==> Standard Output of failed command: ==> Standard Error of failed command: Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156) at com.android.repository.api.SchemaModule.(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81) at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
N

Novellizator

4 года назад

Ответов: 37

Как разрешить java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException

У меня есть код, использующий классы API JAXB, которые были предоставлены как часть JDK в Java 6/7/8. Когда я запускаю тот же код с Java 9, во время выполнения я получаю ошибки, указывающие на то, что классы JAXB не могут быть найдены.Классы JAXB были предоставлены как часть JDK начиная с Java 6, так почему же Java 9 больше не может находить эти классы?
A

Andy Guibert

5 лет назад

Ответов: 39

Замена устаревших модулей JPMS на API Java EE

В Java 9 удалены шесть модулей, содержащих API Java EE, и они будут удалены в ближайшее время:. java.activation с пакетом javax.activation java.corba с пакетами javax.activity, javax.rmi, javax.rmi.CORBA, и org.omg.* java.transaction с пакетом javax.transaction java.xml.bind со всеми пакетами javax.xml.bind.* java.xml.ws с javax.jws, javax.jws.soap, javax.xml.soap, и всеми javax.xml.ws.* пакетами java.xml.ws.annotation с пакетом javax.annotation Какие поддерживаемые сторонние артефакты предоставляют эти API? Неважно, насколько хорошо они предоставляют эти API или какие другие возможности они могут предложить - важно лишь то, являются ли они полноценной заменой этих модулей/пакетов?Чтобы облегчить сбор знаний, я ответил на вопрос, что мне известно на данный момент, и сделал ответ вики-сообществом. Надеюсь, люди будут расширять его вместо того, чтобы писать свои собственные ответы.Перед тем, как проголосовать за закрытие: Да, уже есть некоторые вопросы по отдельным модулям, и ответ на этот вопрос, конечно, дублировал бы эту информацию. Но AFAIK нет единого места, где можно узнать обо всех этих модулях, что, как мне кажется, имеет большую ценность. Вопросы, в которых спрашивают о рекомендациях по библиотекам, обычно считаются не по теме. Вопросы с просьбой порекомендовать библиотеки обычно считаются офф-топиком, потому что "они обычно привлекают ответы, основанные на мнениях, и спам", но я не думаю, что здесь это применимо. Набор допустимых библиотек четко очерчен: Они должны реализовывать определенный стандарт. Кроме этого, ничто другое не имеет значения, поэтому я не вижу особого риска для мнений и спама.
N

Nicolai Parlog

4 года назад

Ответов: 10

2022 WebDevInsider