【问题标题】:ClassNotFoundException for javax.xml.bind.JAXBException with Spring Boot when switch to Java 9javax.xml.bind.JAXBException 的 ClassNotFoundException 与 Spring Boot 切换到 Java 9 时
【发布时间】:2018-08-05 19:41:43
【问题描述】:

使用start.spring.io初始化项目

添加了 WEB,JPA,H2 依赖项,然后尝试使用 Jdk 9 运行 MainApplication.java 并得到以下 错误日志

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::       (v1.5.10.RELEASE)

2018-02-26 16:23:33.973  INFO 3860 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication v0.0.1-SNAPSHOT on RAJAT-PC with PID 3860 (C:\Users\devra\Downloads\Compressed\demo\target\demo-0.0.1-SNAPSHOT.jar started by rajat in C:\Users\devra\Downloads\Compressed\demo\target)
2018-02-26 16:23:33.973  INFO 3860 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to default profiles: default
2018-02-26 16:23:34.254  INFO 3860 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1aa7ecca: startup date [Mon Feb 26 16:23:34 IST 2018]; root of context hierarchy
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (jar:file:/C:/Users/devra/Downloads/Compressed/demo/target/demo-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/spring-core-4.3.14.RELEASE.jar!/) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2018-02-26 16:23:38.429  INFO 3860 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$1c55a85e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-02-26 16:23:39.856  INFO 3860 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2018-02-26 16:23:39.888  INFO 3860 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-02-26 16:23:39.903  INFO 3860 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.27
2018-02-26 16:23:40.247  INFO 3860 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-02-26 16:23:40.247  INFO 3860 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 6024 ms
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2018-02-26 16:23:40.622  INFO 3860 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'webServlet' to [/h2-console/*]
2018-02-26 16:23:42.200  INFO 3860 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2018-02-26 16:23:42.263  INFO 3860 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]
2018-02-26 16:23:42.591  INFO 3860 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.0.12.Final}
2018-02-26 16:23:42.607  INFO 3860 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2018-02-26 16:23:42.607  INFO 3860 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2018-02-26 16:23:42.653  WARN 3860 --- [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
2018-02-26 16:23:42.669  INFO 3860 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2018-02-26 16:23:42.716  INFO 3860 --- [           main] utoConfigurationReportLoggingInitializer :

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2018-02-26 16:23:42.747 ERROR 3860 --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1080) ~[spring-context-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:857) ~[spring-context-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
        at com.example.demo.DemoApplication.main(DemoApplication.java:10) [classes!/:0.0.1-SNAPSHOT]
        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.loader.MainMethodRunner.run(MainMethodRunner.java:48) [demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) ~[hibernate-core-5.0.12.Final.jar!/:5.0.12.Final]
        at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) ~[hibernate-core-5.0.12.Final.jar!/:5.0.12.Final]
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:179) ~[hibernate-entitymanager-5.0.12.Final.jar!/:5.0.12.Final]
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:149) ~[hibernate-entitymanager-5.0.12.Final.jar!/:5.0.12.Final]
        at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:54) ~[spring-orm-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:360) ~[spring-orm-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:382) ~[spring-orm-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:371) ~[spring-orm-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:336) ~[spring-orm-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
        ... 24 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466) ~[na:na]
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563) ~[na:na]
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) ~[demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ~[na:na]
        ... 35 common frames omitted

然后我切换到 jdk 8,它工作正常。

Spring-boot 2.0.0 RC2

也是如此

为什么当 spring doc 提到所需的 Java 版本为 8 或 9 时会发生这种情况。

【问题讨论】:

  • 与实际解决方案无关,但我建议使用 Spring Boot 2(2018 年 2 月 27 日到期),因为 Spring Boot 1.5 不正式支持 JDK 9

标签: java spring spring-boot java-9


【解决方案1】:

您需要添加 JAXB 依赖项(在 Java 9 中默认不再提供)并且您必须使用 Spring Boot 2:

<dependency>
    <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
 </dependency>

请注意,如果您使用 Java 10,您将遇到完全相同的问题,因为 JAXB 依赖项删除并非仅针对 Java 9 版本进行。


The Spring Boot wiki about Java 9 and above 列出了在 Java 9 及更高版本上运行 Spring Boot 应用程序需要了解的事项。

Spring Boot 版本要求

  • Spring Boot 1 不支持(也没有计划)。
  • Spring Boot 2 支持它。

Spring Boot 2 是第一个支持 Java 9 的版本(Java 8 也是 支持的)。如果您使用的是 1.5 并希望使用 Java 9,您应该 升级到 2.0,因为我们没有计划在 Spring Boot 上支持 Java 9 1.5.x.

Java 10 从 Spring Boot 2.0.1.RELEASE 开始支持,而 Java 11 从 Spring Boot 2.1 开始支持.0.M2.

一些已知的解决方法

方面J

使用 Java 9,如果需要从 JDK 编织类,则需要 使用 AspectJ 1.9。 Spring AOP 在大多数情况下应该可以正常工作 AspectJ 1.8(Spring Boot 2.0 中的默认设置)。

JAXB

升级时您可能会遇到以下情况:

java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Hibernate 通常需要 JAXB 不再提供 默认。您可以添加 java.xml.bind 模块来恢复它 Java9 或 Java10 的功能(即使该模块已被弃用)。

<dependency>
    <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
 </dependency>

从 Java11 开始,该模块不可用,因此您唯一的选择是添加 JAXB RI(从 Java9 开始,您可以这样做来代替添加 java.xml.bind 模块:

<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
</dependency>

龙目岛

如果您使用的是 lombok,则 Spring Boot 的托管版本可能不适用于最新的 JDK。检查 Lombok 网站并在必要时覆盖其版本。

一些已知的限制

这些库尚不完全支持 Java 9:

  • Apache Cassandra,参见 #10453

如果 Java 9 及更高版本与 Spring Boot 的兼容性发生变化,请不要犹豫编辑这篇文章。

【讨论】:

  • 似乎从 Spring-boot 2.2.0.RELEASE & Java11 (AdoptOpenJDK (build 11.0.4+11)) 开始没有必要。
【解决方案2】:

添加以下依赖并解决问题

<dependency>
    <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
 </dependency>

【讨论】:

  • 我在使用 Mule 插件时遇到了同样的问题,添加上述插件后,我得到了更多..[INFO] ---------- -------------------------------------------------- [错误] 无法在项目 json-logger 上执行目标 org.bsc.maven:maven-processor-plugin:2.2.4:process (process):执行错误:org.mule.runtime.api.exception.MuleRuntimeException:java。 lang.RuntimeException: javax.xml.bind.JAXBException: 在模块路径或类路径上找不到 JAXB-API 的实现。
  • 我也添加了其他库,正如 santhose subramani 所说..但问题没有解决。执行目标 org.mule.runtime.plugins:mule-extensions-maven-plugin:1.1 的默认扩展模型.1:extension-model 失败:执行 org.mule.runtime.plugins:mule-extensions-maven-plugin:1.1.1:extension-model:javax/xml/bind/JAXBContext 时缺少所需的类
【解决方案3】:

在 pom.xml 中添加以下 maven 依赖项,问题将得到解决。 Java9/10 中的 JaxB 模块已被移除,因此需要手动添加。

<dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.2.11</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-core</artifactId>
 <version>2.2.11</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.2.11</version>
 </dependency>
<dependency>
  <groupId>javax.activation</groupId>
  <artifactId>activation</artifactId>
  <version>1.1.1</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

【讨论】:

  • 嗨,我正在使用这个基于 Java12 的解决方案,版本为 1.2.0 (java.activation),其余版本为 2.3.0。但我会在 module-info.java 中收到错误“模块 从 jaxb.core 和 jaxb.impl 读取包 com.sun.xml.bind.v2”。任何人都可以帮助我吗?提示:我已在此模块信息中添加:“需要 java.activation / jaxb.impl 和 jaxb.core”。
  • @Alex 你解决了这个问题吗?您使用的依赖项是什么?你能发布你的完整依赖列表和版本号吗?
  • 我添加了以上所有依赖项..但我得到以下问题没有解决。执行目标 org.mule.runtime.plugins:mule-extensions-maven-plugin:1.1 的默认扩展模型。 1:扩展模型失败:执行org.mule.runtime.plugins时缺少所需的类:mule-extensions-maven-plugin:1.1.1:extension-model:javax/xml/bind/JAXBContext
【解决方案4】:

或者为 Gradle 添加依赖

compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'

【讨论】:

  • 对于 java 1.8 不是他们的默认 JRE 或他们有多个 java 版本并希望使用 java 1.8 运行程序的人,您可以使用特定的 JRE 运行 JAR 文件:&lt;path_to_jre&gt;/bin/java -jar Executable.jar (你可以把这个放在.bat [Windows] 或.bash [macOS] 文件中直接运行)
【解决方案5】:

@Ratha :对于 Java12(参考您的 comment),此依赖项列表有效:

    <dependencies>
        <...>
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.1</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

【讨论】:

    【解决方案6】:

    公认的答案是正确的,只是想指出我在 Tomcat 9 启动期间将 Web 项目迁移到 OpenJDK11 时遇到了同样的问题。就我而言,得到了以下堆栈跟踪:

    SEVERE [main] com.sun.faces.config.ConfigureListener.contextInitialized Critical error during deployment:
           java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
                   at java.base/java.lang.Class.getDeclaredFields0(Native Method)
                   at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3061)
                   at java.base/java.lang.Class.getDeclaredFields(Class.java:2248)
                   at com.sun.faces.application.annotation.ManagedBeanConfigHandler.collectAnnotatedFields(ManagedBeanConfigHandler.java:245)
                   at com.sun.faces.application.annotation.ManagedBeanConfigHandler.getBeanInfo(ManagedBeanConfigHandler.java:154)
                   at com.sun.faces.application.annotation.ManagedBeanConfigHandler.process(ManagedBeanConfigHandler.java:140)
                   at com.sun.faces.application.annotation.ManagedBeanConfigHandler.push(ManagedBeanConfigHandler.java:126)
                   at com.sun.faces.application.annotation.AnnotationManager.applyConfigAnnotations(AnnotationManager.java:234)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.processAnnotations(AbstractConfigProcessor.java:449)
                   at com.sun.faces.config.processor.ManagedBeanConfigProcessor.process(ManagedBeanConfigProcessor.java:245)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
                   at com.sun.faces.config.processor.ValidatorConfigProcessor.process(ValidatorConfigProcessor.java:121)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
                   at com.sun.faces.config.processor.ConverterConfigProcessor.process(ConverterConfigProcessor.java:127)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
                   at com.sun.faces.config.processor.ComponentConfigProcessor.process(ComponentConfigProcessor.java:118)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
                   at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:403)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
                   at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:138)
                   at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
                   at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:246)
                   at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:443)
                   at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:237)
                   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4684)
                   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5147)
                   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
                   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
                   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
                   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
                   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1848)
                   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
                   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                   at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                   at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
                   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
                   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
                   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
                   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
                   at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
                   at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
                   at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
                   at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
                   at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
                   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
                   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
                   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                   at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                   at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
                   at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
                   at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
                   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                   at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
                   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                   at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
                   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                   at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
                   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
                   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
                   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
           Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
                   at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
                   at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
                   ... 65 more
    

    希望对你有帮助

    【讨论】:

      【解决方案7】:

      在 pom.xml 文件中添加以下依赖项

      <dependency>
         <groupId>javax.xml.bind</groupId>
         <artifactId>jaxb-api</artifactId>
         <version>2.3.1</version>
       </dependency>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-10
        • 2017-08-01
        • 2021-03-10
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        • 2021-04-24
        相关资源
        最近更新 更多