Contoh kesalahan startup Ktor

Saya sangat baru mengenal Kotlin dan Ktor dan Gradle, ingin mencoba Ktor, jadi ikuti langkah-langkah yang dijelaskan di sini, dan berakhir dengan kode ini, dan struktur yang ditunjukkan pada tangkapan layar:

Seperti yang terlihat, ada banyak kesalahan, bagaimana cara memperbaikinya?

package blog

import org.jetbrains.ktor.netty.*
import org.jetbrains.ktor.routing.*
import org.jetbrains.ktor.application.*
import org.jetbrains.ktor.host.*
import org.jetbrains.ktor.http.*
import org.jetbrains.ktor.response.*

fun main(args: Array<String>) {
    embeddedServer(Netty, 8080) {
        routing {
            get("/") {
                call.respondText("My Example Blog", ContentType.Text.Html)
            }
        }
    }.start(wait = true)
}

File build.gradle dibuat secara otomatis sebagai:

group 'Example'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.1.4-3'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'java'
apply plugin: 'kotlin'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

masukkan deskripsi gambar di sini


person Hasan A Yousef    schedule 22.09.2017    source sumber


Jawaban (2)


Anda memiliki skrip build.gradle yang tidak lengkap (dependensi tidak ada) - lihat di sini untuk detailnya. Ini yang bagus:

group 'Example'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.1.4-3'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'java'
apply plugin: 'kotlin'

sourceCompatibility = 1.8
ext.ktor_version = '0.4.0'

repositories {
    mavenCentral()
    maven { url  "http://dl.bintray.com/kotlin/ktor" }
    maven { url "https://dl.bintray.com/kotlin/kotlinx" }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    compile "org.jetbrains.ktor:ktor-core:$ktor_version"
    compile "org.jetbrains.ktor:ktor-netty:$ktor_version"
    compile "ch.qos.logback:logback-classic:1.2.1"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
kotlin {
    experimental {
        coroutines "enable"
    }
}
person Opal    schedule 22.09.2017
comment
Saya mendapat kesalahan ini saat menjalankan aplikasi: SLF4J: Gagal memuat kelas org.slf4j.impl.StaticLoggerBinder. SLF4J: Defaultnya adalah penerapan logger tanpa operasi (NOP). - person Hasan A Yousef; 22.09.2017
comment
@HasanAYousef, ini bukan kesalahan melainkan peringatan. Anda juga perlu mengkonfigurasi logger. - person Opal; 22.09.2017
comment
Terima kasih @OPal, dapatkah Anda membantu saya dengan langkah kedua yang ingin saya lakukan, dalam pertanyaan ini: stackoverflow.com/questions/46365605/ - person Hasan A Yousef; 22.09.2017

Saya sarankan menggunakan plugin IntelliJ Ktor untuk mem-bootstrap aplikasi Anda. Skrip ./gradlew run langsung dijalankan dengan konfigurasi ini tanpa Anda perlu mengutak-atik konfigurasi Gradle. Ini cara termudah untuk memulai.

Berikut contoh aplikasi Ktor yang menggunakan konfigurasi: https://gitlab.com/tinacious/ktor-example

Jika Anda ingin menjalankan aplikasi Anda dari IntelliJ, lihat jawaban ini untuk konfigurasi proses yang saya gunakan: https://stackoverflow.com/a/65350680/1870884

person Tina    schedule 18.12.2020
comment
Sayangnya, plugin tersebut sekarang ditandai sebagai Usang. (April 2021) - person Martin Marconcini; 08.04.2021