Java 11 SpringBoot应用程序在TomEE 7.1.0服务器上部署时出错

Java 11 SpringBoot应用程序在TomEE 7.1.0服务器上部署时出错,java,spring-boot,apache-tomee,java-11,tomee-7,Java,Spring Boot,Apache Tomee,Java 11,Tomee 7,我们正在将SpringBoot应用程序从Java1.8迁移到Java11。 新的环境是: Java版本=11.0.1+13 SpringBoot版本=2.1.1.0版本 TOME版本=7.1.0 为了便于在此处发布,我创建了一个只有一个控制器类的示例项目,因此: HelloController.java package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.s

我们正在将SpringBoot应用程序从Java1.8迁移到Java11。 新的环境是:

  • Java版本=11.0.1+13
  • SpringBoot版本=2.1.1.0版本
  • TOME版本=7.1.0
  • 为了便于在此处发布,我创建了一个只有一个控制器类的示例项目,因此:

    HelloController.java

    package com.example.demo;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/greet")
    public class HelloController {
        @GetMapping
        public String greetings() {
            return "Hello, world!!!";
        }
    }
    
    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>SampleJava11</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>SampleJava11</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
        <java.version>11</java.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    
    
    4.0.0
    org.springframework.boot
    spring启动程序父级
    2.1.1.1发布
    com.example
    样本11
    0.0.1-快照
    战争
    样本11
    SpringBoot的演示项目
    11
    org.springframework.boot
    SpringBootStarterWeb
    org.springframework.boot
    弹簧启动机tomcat
    假如
    org.springframework.boot
    弹簧起动试验
    测试
    org.springframework.boot
    springbootmaven插件
    

    执行TomEE startup.bat时,我遇到以下错误:

    14-Mar-2019 16:23:30.408 SEVERE [localhost-startStop-1] jdk.internal.reflect.NativeMethodAccessorImpl.invoke ContainerBase.removeChild: destroy:
    org.apache.catalina.LifecycleException: An invalid Lifecycle transition was attempted ([before_destroy]) for component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SampleJava11]] in state [STARTING_PREP]
        at org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:402)
        at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
        at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:856)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1651)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1631)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.undeployWebApps(TomcatWebAppBuilder.java:764)
        at org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:2406)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1089)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:754)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
    
    14-Mar-2019 16:23:30.444 SEVERE [localhost-startStop-1] org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal Unable to deploy collapsed ear in war StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SampleJava11]
     org.apache.openejb.OpenEJBException: Creating application failed: E:\Programs\tomee\webapps\SampleJava11: javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1093)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:754)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
    Caused by: java.lang.NoSuchMethodError: javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
        at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:140)
        at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38)
        at org.apache.bval.jsr.ConfigurationImpl.__privileged_doBuildValidatorFactory(ConfigurationImpl.java:332)
        at org.apache.bval.jsr.ConfigurationImpl.doBuildValidatorFactory(ConfigurationImpl.java)
        at org.apache.bval.jsr.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:324)
        at org.apache.openejb.assembler.classic.ValidatorBuilder$OpenEjbConfig.buildValidatorFactory(ValidatorBuilder.java:401)
        at org.apache.openejb.assembler.classic.ValidatorBuilder.buildFactory(ValidatorBuilder.java:111)
        at org.apache.openejb.assembler.classic.ValidatorBuilder.buildFactory(ValidatorBuilder.java:67)
        at org.apache.openejb.assembler.classic.LazyValidatorFactory.ensureDelegate(LazyValidatorFactory.java:54)
        at org.apache.openejb.assembler.classic.LazyValidatorFactory.getFactory(LazyValidatorFactory.java:65)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:972)
        ... 17 more
    
    14-Mar-2019 16:23:30.445 SEVERE [localhost-startStop-1] jdk.internal.reflect.NativeMethodAccessorImpl.invoke ContainerBase.addChild: start:
    org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SampleJava11]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
    Caused by: org.apache.tomee.catalina.TomEERuntimeException: org.apache.openejb.OpenEJBException: Creating application failed: E:\Programs\tomee\webapps\SampleJava11: javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1315)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 10 more
    Caused by: org.apache.openejb.OpenEJBException: Creating application failed: E:\Programs\tomee\webapps\SampleJava11: javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1093)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:754)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
        ... 15 more
    Caused by: java.lang.NoSuchMethodError: javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
        at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:140)
        at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38)
        at org.apache.bval.jsr.ConfigurationImpl.__privileged_doBuildValidatorFactory(ConfigurationImpl.java:332)
        at org.apache.bval.jsr.ConfigurationImpl.doBuildValidatorFactory(ConfigurationImpl.java)
        at org.apache.bval.jsr.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:324)
        at org.apache.openejb.assembler.classic.ValidatorBuilder$OpenEjbConfig.buildValidatorFactory(ValidatorBuilder.java:401)
        at org.apache.openejb.assembler.classic.ValidatorBuilder.buildFactory(ValidatorBuilder.java:111)
        at org.apache.openejb.assembler.classic.ValidatorBuilder.buildFactory(ValidatorBuilder.java:67)
        at org.apache.openejb.assembler.classic.LazyValidatorFactory.ensureDelegate(LazyValidatorFactory.java:54)
        at org.apache.openejb.assembler.classic.LazyValidatorFactory.getFactory(LazyValidatorFactory.java:65)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:972)
        ... 17 more
    
    14-Mar-2019 16:23:30.445 SEVERE [localhost-startStop-1] jdk.internal.reflect.NativeMethodAccessorImpl.invoke Error deploying web application archive [E:\Programs\tomee\webapps\SampleJava11.war]
    java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SampleJava11]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:758)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
    
    2019年3月14日16:23:30.408严重[localhost-startStop-1]jdk.internal.reflect.NativeMethodAccessorImpl.invoke ContainerBase.removeChild:销毁:
    org.apache.catalina.LifecycleException:组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/SampleJava11]]处于[STARTING\u PREP]状态时,尝试了无效的生命周期转换([销毁前])
    在org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:402)上
    位于org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292)
    位于org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:856)
    位于org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1651)
    位于org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1631)
    在org.apache.tomee.catalina.TomcatWebAppBuilder.undeployWebApps上(TomcatWebAppBuilder.java:764)
    位于org.apache.openejb.assembler.classic.assembler.destroyApplication(assembler.java:2406)
    位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:1089)
    位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:754)
    位于org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
    位于org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
    在org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
    位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
    位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
    位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
    位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
    位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
    位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
    位于java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    位于java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    位于java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    位于java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    位于java.base/java.lang.Thread.run(Thread.java:834)
    2019年3月14日16:23:30.444严重[localhost-startStop-1]org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal无法在战争中部署崩溃的ear标准引擎[catalina]。标准主机[localhost]。标准上下文[/SampleJava11]
    org.apache.openejb.OpenEJBException:创建应用程序失败:E:\Programs\tomee\webapps\SampleJava11:javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
    位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:1093)
    位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:754)
    位于org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
    位于org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
    在org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
    位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
    位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
    位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
    位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
    位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
    位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
    位于java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    位于java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    位于java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    位于java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    位于java.base/java.lang.Thread.run(Thread.java:834)
    原因:java.lang.NoSuchMethodError:javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;
    位于org.hibernate.validator.internal.engine.validatoryImpl.(validatoryImpl.java:140)
    位于org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38)
    在org.apache.bval.jsr.ConfigurationImpl.\uuu privileged\uDoBuildValidatorFactory(Co