代码之家  ›  专栏  ›  技术社区  ›  Thanh Dong

在spring boot web应用程序中运行jar文件时,创建名为“ConfigurationPropertiesBindingPostProcessor”的bean时出错

  •  0
  • Thanh Dong  · 技术社区  · 6 年前

    我的Spring boot web应用程序在开始通过jar包运行时出错,尽管我可以通过mvn Spring boot:run运行。 你能帮我纠正这个错误吗? 我在数据源配置中使用:

    @PropertySource(value = {"classpath:datasource-postgresql.properties"})
    

    我的pom文件:

    <?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>
    
        <groupId>com.example</groupId>
        <artifactId>MultiTenancyDemo</artifactId>
        <!-- <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> -->
    
        <name>MultiTenancyDemo</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <p.type>jar</p.type>
            <start-class>com.example.demo.MultiTenancyDemoApplication</start-class>
            <maven.test.skip>true</maven.test.skip>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <!-- For Thymeleaf VIEW. Remove it if using Jsp VIEW -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <scope>provided</scope>
            </dependency>
            <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.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-log4j2</artifactId>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>5.4.2.Final</version>
            </dependency>
    
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk</artifactId>
                <version>1.11.163</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ibatis</groupId>
                <artifactId>ibatis-sqlmap</artifactId>
                <version>2.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.mindrot</groupId>
                <artifactId>jbcrypt</artifactId>
                <version>0.3m</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
        <packaging>${p.type}</packaging>
    </project>
    

    我通过窗口命令行运行:

    java-jar目标\ MultitenacyDemo-2.0.0。释放。罐子

    java-jar目标\ MultitenacyDemo-2.0.0。释放。jar—弹簧 。配置。位置=应用程序。属性,数据源postgresql。属性

    错误:

    Error starting ApplicationContext. To display the conditions report re-run your
    application with 'debug' enabled.
    2018-03-29 11:52:46.370 ERROR 7844 --- [           main] o.s.boot.SpringApplicat
    ion               : Application run failed
    
    org.springframework.beans.factory.BeanCreationException: Error creating bean wit
    h name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindi
    ngPostProcessor': Invocation of init method failed; nested exception is java.uti
    l.ServiceConfigurationError: javax.validation.spi.ValidationProvider: Error read
    ing configuration file
            at org.springframework.beans.factory.support.AbstractAutowireCapableBean
    Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1710) ~[spring-be
    ans-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBean
    Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583) ~[spring-beans
    -5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBean
    Factory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5
    .0.4.RELEASE.jar!/:5.0.4.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$
    doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.4.RELEASE.jar!/:5.0
    .4.RELEASE]
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
    y.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.4.RELEA
    SE.jar!/:5.0.4.RELEASE]
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
    an(AbstractBeanFactory.java:310) ~[spring-beans-5.0.4.RELEASE.jar!/:5.0.4.RELEAS
    E]
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
    (AbstractBeanFactory.java:205) ~[spring-beans-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
    
            at org.springframework.context.support.PostProcessorRegistrationDelegate
    .registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:205) ~[spring
    -context-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
            at org.springframework.context.support.AbstractApplicationContext.regist
    erBeanPostProcessors(AbstractApplicationContext.java:709) ~[spring-context-5.0.4
    .RELEASE.jar!/:5.0.4.RELEASE]
            at org.springframework.context.support.AbstractApplicationContext.refres
    h(AbstractApplicationContext.java:534) ~[spring-context-5.0.4.RELEASE.jar!/:5.0.
    4.RELEASE]
            at org.springframework.boot.web.servlet.context.ServletWebServerApplicat
    ionContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.
    0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.
    java:752) [spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.SpringApplication.refreshContext(SpringAppli
    cation.java:388) [spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java
    :327) [spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java
    :1246) [spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java
    :1234) [spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at com.example.demo.MultiTenancyDemoApplication.main(MultiTenancyDemoApp
    lication.java:31) [classes!/:2.0.0.RELEASE]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.
    0_131]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.
    0_131]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:
    1.8.0_131]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_131]
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner
    .java:48) [MultiTenancyDemo-2.0.0.RELEASE.jar:2.0.0.RELEASE]
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [Mu
    ltiTenancyDemo-2.0.0.RELEASE.jar:2.0.0.RELEASE]
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [Mu
    ltiTenancyDemo-2.0.0.RELEASE.jar:2.0.0.RELEASE]
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
     [MultiTenancyDemo-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    Caused by: java.util.ServiceConfigurationError: javax.validation.spi.ValidationP
    rovider: Error reading configuration file
            at java.util.ServiceLoader.fail(Unknown Source) ~[na:1.8.0_131]
            at java.util.ServiceLoader.parse(Unknown Source) ~[na:1.8.0_131]
            at java.util.ServiceLoader.access$200(Unknown Source) ~[na:1.8.0_131]
            at java.util.ServiceLoader$LazyIterator.hasNextService(Unknown Source) ~
    [na:1.8.0_131]
            at java.util.ServiceLoader$LazyIterator.hasNext(Unknown Source) ~[na:1.8
    .0_131]
            at java.util.ServiceLoader$1.hasNext(Unknown Source) ~[na:1.8.0_131]
            at javax.validation.Validation$GetValidationProviderListAction.loadProvi
    ders(Validation.java:381) ~[validation-api-2.0.1.Final.jar!/:na]
            at javax.validation.Validation$GetValidationProviderListAction.run(Valid
    ation.java:356) ~[validation-api-2.0.1.Final.jar!/:na]
            at javax.validation.Validation$GetValidationProviderListAction.getValida
    tionProviderList(Validation.java:338) ~[validation-api-2.0.1.Final.jar!/:na]
            at javax.validation.Validation$DefaultValidationProviderResolver.getVali
    dationProviders(Validation.java:320) ~[validation-api-2.0.1.Final.jar!/:na]
            at javax.validation.Validation$GenericBootstrapImpl.configure(Validation
    .java:277) ~[validation-api-2.0.1.Final.jar!/:na]
            at org.springframework.boot.validation.MessageInterpolatorFactory.getObj
    ect(MessageInterpolatorFactory.java:53) ~[spring-boot-2.0.0.RELEASE.jar!/:2.0.0.
    RELEASE]
            at org.springframework.boot.context.properties.ConfigurationPropertiesJs
    r303Validator$Delegate.<init>(ConfigurationPropertiesJsr303Validator.java:71) ~[
    spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.context.properties.ConfigurationPropertiesJs
    r303Validator.<init>(ConfigurationPropertiesJsr303Validator.java:43) ~[spring-bo
    ot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.context.properties.ConfigurationPropertiesJs
    r303Validator.getIfJsr303Present(ConfigurationPropertiesJsr303Validator.java:64)
     ~[spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.boot.context.properties.ConfigurationPropertiesBi
    nder.<init>(ConfigurationPropertiesBinder.java:69) ~[spring-boot-2.0.0.RELEASE.j
    ar!/:2.0.0.RELEASE]
            at org.springframework.boot.context.properties.ConfigurationPropertiesBi
    ndingPostProcessor.afterPropertiesSet(ConfigurationPropertiesBindingPostProcesso
    r.java:78) ~[spring-boot-2.0.0.RELEASE.jar!/:2.0.0.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBean
    Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1769) ~[spring
    -beans-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBean
    Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1706) ~[spring-be
    ans-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
            ... 24 common frames omitted
    Caused by: java.util.zip.ZipException: invalid code lengths set
            at java.util.zip.InflaterInputStream.read(Unknown Source) ~[na:1.8.0_131
    ]
            at org.springframework.boot.loader.jar.ZipInflaterInputStream.read(ZipIn
    flaterInputStream.java:52) ~[MultiTenancyDemo-2.0.0.RELEASE.jar:2.0.0.RELEASE]
            at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[na:1.8.0_131]
            at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[na:1.8.0_131]
            at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[na:1.8.0_131]
            at java.io.InputStreamReader.read(Unknown Source) ~[na:1.8.0_131]
            at java.io.BufferedReader.fill(Unknown Source) ~[na:1.8.0_131]
            at java.io.BufferedReader.readLine(Unknown Source) ~[na:1.8.0_131]
            at java.io.BufferedReader.readLine(Unknown Source) ~[na:1.8.0_131]
            at java.util.ServiceLoader.parseLine(Unknown Source) ~[na:1.8.0_131]
            ... 42 common frames omitted
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Thanh Dong    6 年前

    我发现根本原因是因为我的maven无法下载库文件。删除m2文件夹中的repositories文件夹,修复网络后,我可以运行jar文件。