当前位置: 首页 > 知识库问答 >
问题:

升级gradle和Spring boot版本后,Spring boot kafka应用程序不能作为控制台应用程序启动

连志义
2023-03-14

升级细节。Spring靴:2.2.7-释放至2.4.6渐变:4.10.3至6.9.2

build.gradle

plugins{
   id 'org.springframework.boot' version '2.4.6'
   id 'io.spring.dependency-management' version '1.0.11.RELESE'
   id 'java'
}
sourceCompatibility ='1.8'

dependency-management{
    import {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:2020.0.4"
    }
}
dependencies{
              implmentation 'org.springframework.boot:spring-boot-starter-data-jdbc'
              implmentation 'org.springframework.boot:spring-boot-starter-web'
              implmentation 'org.springframework.kafka:spring-kafka'
              implmentation 'org.projectlombok.lombok'
              testImplmentation 'org.springframework.boot:spring-boot-starter-test'
              implmentation 'org.springframework.cloud:spring-cloud-starter-config'
              implmentation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
              compile 'org.springframework.boot:spring-boot-starter-webflux'
              implmentation 'org.springframework.boot:spring-boot-starter-data-jpa'
              compile(group: 'org.springframework.boot', name: 'spring-boot-configuaration-processor')
              compile(group: 'com.microsoft.sqlserver', name: 'mssql-jdbc' version: '8.3.1.jre8-preview')
              runtimeOnly 'com.microsoft.sqlserver:mysql-jdbc'
              implmentation 'io.springfox:springfox-swagger2:2.9.2'
              implmentation 'io.springfox:springfox-swagger-ui:2.9.2'
              compile 'org.springframework.boot:spring-boot-starter-actuator'
              compile 'org.projectreactor:reactor-spring'
              implmentation 'io.micrometer:micrometer-registry-prometheus'
              implmentation 'javax.mail:mail:1.4'
              testImplmentation 'junit:junit'
              annotationProcessor 'org.projectlombok:lombok'
              
}
wrapper{
  distribuationUrl = "https://services.gradle.org/distributions/gradle-6.9.2-bin"

}

主要类别:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
@EnableKafka
@EnableScheduling
public class SpringBootMainClassApplication {
    public static void main(String[] args) {
    
        SpringApplication.run(SpringBootMainClassApplication.class, args);
    }
}

应用属性

server.port=8080

错误:“ApplicationContextException:由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplicationContext”。

在此输入图像描述

添加以下属性到application.properties.后,代码运行良好

spring.main.web-application-type=none

应用程序作为控制台应用程序工作正常,无需更改spring.main.web-应用程序类型=无属性与旧版本Spring启动2.2.7-RELEASE,你能帮助我们运行应用程序而不添加新属性吗?

共有1个答案

纪佐
2023-03-14

它运行得很好,似乎你格拉德尔有很多错误

请使用这个gradle,永远爱你的代码,就像一幅画一样美丽:)

plugins {
  id "io.spring.dependency-management" version "1.0.11.RELEASE"
  id "org.springframework.boot" version "2.4.6"
  id "java"
}

sourceCompatibility ='1.8'

repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
    mavenCentral()
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:2020.0.4"
    }
}

dependencies
{
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jdbc'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'
    implementation group: 'org.springframework.kafka', name: 'spring-kafka'
    
    implementation 'io.springfox:springfox-swagger2:2.9.2'
    implementation 'io.springfox:springfox-swagger-ui:2.9.2'
    implementation 'org.springframework.cloud:spring-cloud-starter-config'
    implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'io.micrometer:micrometer-registry-prometheus'
    implementation 'javax.mail:mail:1.4'
    
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.24'
    compileOnly group: 'org.springframework.boot', name: 'spring-boot-configuaration-processor'
    compileOnly group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '8.3.1.jre8-preview'
    
    compileOnly 'org.springframework.boot:spring-boot-starter-webflux'
    compileOnly 'org.springframework.boot:spring-boot-starter-actuator'
    compileOnly 'org.projectreactor:reactor-spring'
    
    runtimeOnly 'com.microsoft.sqlserver:mysql-jdbc'
    
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'junit:junit'
    
    annotationProcessor 'org.projectlombok:lombok'
}
 类似资料:
  • 问题内容: 我已经开发了一个Java控制台应用程序,该应用程序在启动时打开控制台窗口并保持在前台,我想在后台启动该应用程序。 现在,我通过以下命令行启动该应用程序: 有没有办法实现这种行为?更改命令行参数就足够了,还是我需要对代码进行一些更改? 问题答案: 答案取决于操作系统。

  • 问题内容: 我正在用Java和gradle编写控制台应用程序。我正在使用插件,并在中正确配置了必填字段。 在我的主班里,我与有联系。这是问题所在:当我在项目目录中运行时,阅读器不会等待控制台输入。而是在第一次通话时返回。对于我在做什么,这种行为是不可取的。 解决办法是什么?是否有用于gradle的单独的控制台应用程序插件,或者我需要以某种方式调整插件以适合我的需要? 问题答案: 默认情况下,gra

  • 好的,我决定在框架grails中试试。按照手册安装了。创建一个测试项目: 运行测试项目: 没关系。 今天,Ubuntu提供了安装更新,更新包java-8-oracle-Inster。执行此更新命令后 结果: 我很感激你的帮助。

  • 我正试图将运行在tomcat上的现有应用程序更改为SpringBoot。它一直运行到真正的SpringBoot启动。我有一个类似的应用程序运行在SpringBoot上。这就是我知道它一直运行到Springboot的原因。 我的主要方法: 我尝试使用@componentscan运行main方法,该方法具有如下所示的basePackages: 这无济于事。我尝试在main类的顶部添加@SpringBo

  • 我正在处理一个spring boot应用程序,我想把从2.9.10.2升级到2.10.2。下面是我的pom.xml片段和升级依赖项后得到的错误: pom.xml: null

  • 我正在试着在Proguard打开的情况下测试Android应用程序的发布版本。我已经为测试依赖项创建了其他Proguard规则文件,该文件包含在发布规则文件中。 一切编译都很好,但在运行时失败。 我正在使用Espresso进行测试,仪表运行器在中定义 是否有机会为预发布版本运行测试?我从五月份就找到了这个话题,看起来这是不可能的。对我来说,这看起来只是错误的Proguard配置(缺少方法),但这行