代码之家  ›  专栏  ›  技术社区  ›  박찬오

Springboot 3.0+与graalvm,当我运行构建的图像得到错误。为什么?

  •  0
  • 박찬오  · 技术社区  · 3 年前

    我不知道这个错误的原因。

    首先,我的背景环境在这里。

    1. springboot 3.0
    2. 7.4.2级
    3. amazone correto 17

    并且,下面的内容是我所掌握的。

    1. ./gradlew bootBuildImage-调试
    2. 那么,成功意味着文本“在11米33秒内建造成功”
    3. docker运行myImage:0.0.1-SNAPSHOT

    另外,我在这里看到了这个问题的关系。

    https://github.com/spring-attic/spring-native/issues/743

    正如您在上面讨论的那样,我们知道这个问题是由“springbootstarterweb服务”模块引起的。然后它在“Spring3.0”中得到了解决,所以它完成了问题。

    但即使我现在使用“Spring3.0”,也会重现这个错误。

    Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xpath.internal.functions.FuncNormalizeSpace.<init>(
    
    

    这是我的渐变配置。

    import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
    
    plugins {
        id("org.springframework.boot") version "3.0.5"
        id("io.spring.dependency-management") version "1.1.0"
        id("org.graalvm.buildtools.native") version "0.9.21"
        kotlin("jvm") version "1.7.22"
        kotlin("plugin.spring") version "1.7.22"
    }
    
    group = "com"
    version = "0.0.1-SNAPSHOT"
    java.sourceCompatibility = JavaVersion.VERSION_17
    
    configurations {
        compileOnly {
            extendsFrom(configurations.annotationProcessor.get())
        }
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation("org.springframework.boot:spring-boot-starter-data-jpa")
        implementation("org.springframework.boot:spring-boot-starter-web-services")
        implementation("org.flywaydb:flyway-core")
        implementation("org.flywaydb:flyway-mysql")
        implementation("org.jetbrains.kotlin:kotlin-reflect")
        implementation("org.flywaydb:flyway-mysql")
        implementation("org.springframework.boot:spring-boot-devtools")
        implementation("jakarta.persistence:jakarta.persistence-api:3.1.0")
    
        runtimeOnly("com.mysql:mysql-connector-j")
        annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
        testImplementation("org.springframework.boot:spring-boot-starter-test")
    }
    
    tasks.withType<KotlinCompile> {
        kotlinOptions {
            freeCompilerArgs = listOf("-Xjsr305=strict")
            jvmTarget = "17"
        }
    }
    
    tasks.withType<JavaCompile> {
        enabled = true
    }
    
    tasks.withType<Test> {
        systemProperty("spring.profiles.active", System.getProperty("spring.profiles.active", "test"))
        useJUnitPlatform()
    }
    graalvmNative {
        binaries {
            named("main") {
                debug.set(true)
                verbose.set(true)
                configurationFileDirectories.from(file("resource/meta")) // Adds a native image configuration file directory, containing files like reflection configuration
            }
        }
    }
    

    我如何重新思考这个问题?

    1. 描述你所尝试的
    • docker运行myImage:0.0.1-SNAPSHOT
    1. 你预期会发生什么
    • 使用本机运行springboot应用程序
    1. 实际结果如何。
    • 引起原因:javax.xml.transform.TransformerException:com.sun.org.apache.xpath.internal.functions.FunchNormalizeSpace(
    0 回复  |  直到 3 年前