gpt4 book ai didi

spring - Spring Boot jar由于缺少ServletWebServerFactory bean而无法启动Web服务器

转载 作者:行者123 更新时间:2023-12-02 13:36:01 25 4
gpt4 key购买 nike

我已经使用 Spring Boot Kotlin Gradle 创建了REST后端系统。
从IDE运行时,一切正常。
但是当我创建jar文件并使用控制台 java -jar app.jar 运行它时
我收到此错误:

错误org.springframework.boot.SpringApplication-应用程序运行失败
org.springframework.context.ApplicationContextException:无法启动Web服务器;无法启动Web服务器。嵌套的异常是org.springframework.context.ApplicationContextException:由于缺少ServletWebServerFactory bean而无法启动ServletWebServerApplicationContext。


我尝试了多种解决方案,但在网上发现的任何内容似乎都无济于事。 Iam是Spring Boot的新手,因此可能缺少Iam。

我已经将 Intellij 一起使用了Spring Initializr 模板。

build.gradle.kts

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("org.springframework.boot") version "2.1.6.RELEASE"
id("io.spring.dependency-management") version "1.0.7.RELEASE"
id("org.jetbrains.kotlin.plugin.jpa") version "1.3.41"
kotlin("jvm") version "1.3.41"
kotlin("plugin.spring") version "1.3.41"
}

group = "sk.demo"
version = "0.1.1"
java.sourceCompatibility = JavaVersion.VERSION_1_8

val developmentOnly by configurations.creating
configurations {
runtimeClasspath {
extendsFrom(developmentOnly)
}
}

repositories {
mavenCentral()
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("mysql:mysql-connector-java")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}

DemoBeApplication.kt
package sk.demo.demo

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

@SpringBootApplication
class DemoBeApplication

fun main(args: Array<String>) {
runApplication<DemoBeApplication>(*args)
}

DemoBeApplication.kt我尝试过的另一个版本
package sk.demo.demo

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer

@SpringBootApplication
class DemoBeApplication : SpringBootServletInitializer()

fun main(args: Array<String>) {
SpringApplication.run(DemoBeApplication::class.java, *args)
}

最佳答案

我建议阅读更多有关Spring Boot Gradle Plugin的信息。听起来您想使用bootJar任务。这些步骤对我有用:

./gradlew bootJar
# ...
# BUILD SUCCESSFUL in 56s
# 3 actionable tasks: 3 executed

java -jar build/libs/demo-0.0.1-SNAPSHOT.jar
# . ____ _ __ _ _
# /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
# ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
# \\/ ___)| |_)| | | | | || (_| | ) ) ) )
# ' |____| .__|_| |_|_| |_\__, | / / / /
# =========|_|==============|___/=/_/_/_/
# :: Spring Boot :: (v2.1.6.RELEASE)
#
# 2019-07-25 08:54:05.197 INFO 12021 --- [ main] com.example.demo.DemoApplicationKt : Starting DemoApplicationKt
# 2019-07-25 08:54:05.200 INFO 12021 --- [ main] com.example.demo.DemoApplicationKt : No active profile set, falling back to default profiles: default
# 2019-07-25 08:54:05.851 INFO 12021 --- [ main] com.example.demo.DemoApplicationKt : Started DemoApplicationKt in 1.01 seconds (JVM running for 1.449)

关于spring - Spring Boot jar由于缺少ServletWebServerFactory bean而无法启动Web服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57203983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com