java - Gradle + Spring Boot 错误 : Failed to bind properties

标签 java spring spring-boot maven gradle

我正在从 Maven 迁移到 Gradle,当通过 Gradle 生成的 jar 文件运行时,Spring 启动服务无法启动。该应用程序作为 Spring 应用程序或作为通过 Maven 生成的 jar 运行时运行良好。 我有一种感觉,我们在 Gradle 中缺少一些依赖项,但无法确定它。如果有人能指出我所缺少的内容,我将不胜感激。

错误:

{"timestamp":"2021-09-15 03:37:23 UTC","message":"Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatServletWebServerFactory'
defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'servletWebServerFactoryCustomizer' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.class]: Unsatisfied dependency expressed through method 'servletWebServerFactoryCustomizer' parameter 0; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'server-org.springframework.boot.autoconfigure.web.ServerProperties': Could not bind properties to 'ServerProperties' : prefix=server, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'server.error.include-stacktrace' to org.springframework.boot.autoconfigure.web.ErrorProperties$IncludeAttribute","thread":"main","logLevel":"WARN","fileName":"AbstractApplicationContext.java","line":591,"serviceCode":"SMPL-JAVA-MS"}
{"timestamp":"2021-09-15 03:37:23 UTC","message":"\n\nError starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.","thread":"main","logLevel":"INFO","fileName":"ConditionEvaluationReportLoggingListener.java","line":136,"serviceCode":"SMPL-JAVA-MS"}

Gradle 依赖

  implementation 'org.modelmapper:modelmapper:2.4.2'
  implementation 'org.springframework.boot:spring-boot-starter-web:+'
  implementation 'org.springframework.boot:spring-boot-starter-validation:+'
  implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:+'
  implementation 'io.springfox:springfox-swagger2:3.0.0'
  implementation 'io.springfox:springfox-swagger-ui:3.0.0'
  implementation 'io.springfox:springfox-boot-starter:3.0.0'
  implementation 'org.springframework.boot:spring-boot-starter-webflux:+'
  implementation 'org.opensaml:opensaml:2.5.1-1'
  implementation 'org.springframework.boot:spring-boot-starter-data-jpa:+'
  implementation 'org.springframework.boot:spring-boot-starter-test:+'
  implementation 'com.google.guava:guava:30.1.1-jre'
  runtimeOnly 'org.projectlombok:lombok:1.18.20'
  runtimeOnly 'org.postgresql:postgresql:+'
  runtimeOnly 'org.springframework.boot:spring-boot-devtools:+'
  testImplementation 'org.springframework.boot:spring-boot-starter-test:+'

pox.xml

    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.3</version>
    <relativePath />
  </parent>

  <groupId>***</groupId>
  <artifactId>***</artifactId>
  <version>1.0.0</version>
  <name>***</name>
  <description>***</description>

  <properties>
    <java.version>16</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.20</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.modelmapper</groupId>
      <artifactId>modelmapper</artifactId>
      <version>2.4.2</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-xml</artifactId>
    </dependency>

    <!-- swagger UI at http://localhost:8080/swagger-ui/index.html -->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-boot-starter</artifactId>
      <version>3.0.0</version>
    </dependency>

    <!-- Web Client for accessing external requests -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>
    <dependency>
      <groupId>org.opensaml</groupId>
      <artifactId>opensaml</artifactId>
      <version>2.5.1-1</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>30.1.1-jre</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

最佳答案

发现问题了。结果是我的 application.properties 文件中已弃用的属性。这需要去:

server.error.include-stacktrace=ON_TRACE_PARAM

关于java - Gradle + Spring Boot 错误 : Failed to bind properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69202819/

相关文章:

java - Freemarker URLTemplate 加载器将国际化添加到模板名称和多个加载器不工作

Java 1.6 上的 Java Mapcompute() 示例

java - 如何输出Spring暴露的所有端点

java - 我如何开发带有应用程序服务器的 Spring Web 应用程序?

java - 如何将对象从注册表传输到 Controller 以写入数据库并分配角色?

java - 在java中下载图像

java - 将集合对象从一个 jsp 传输到另一个 jsp

Java - Spring AOP 切入点不起作用

jpa - 为什么需要JPA依赖关系才能运行飞行路线迁移

java - 运行从 springboot 项目打包的 jar 时无法获取 bean