ObjectBox и Ktor - PullRequest
       9

ObjectBox и Ktor

0 голосов
/ 13 ноября 2018

Можно ли использовать ObjectBox в приложении с Ktor? У меня есть следующий build.gradle файл:

buildscript {
    // Consider moving these values to `gradle.properties`
    ext.kotlin_version = '1.2.70'
    ext.ktor_version = '0.9.4'
    ext.appengine_version = '1.9.60'
    ext.appengine_plugin_version = '1.3.4'
    ext.objectbox_version = '2.1.0'

    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.cloud.tools:appengine-gradle-plugin:$appengine_plugin_version"
        classpath "io.objectbox:objectbox-gradle-plugin:$objectbox_version"
    }
}

apply plugin: 'kotlin'
apply plugin: 'war'
apply plugin: 'com.google.cloud.tools.appengine'
// to enable gradle in IntelliJ IDEA
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.objectbox'

sourceSets {
    main.kotlin.srcDirs = [ 'src/main/kotlin' ]
}

repositories {
    jcenter()
    maven { url "https://kotlin.bintray.com/ktor" }
    maven { url "https://dl.bintray.com/kotlin/exposed" }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile "io.ktor:ktor-server-servlet:$ktor_version"
    compile "io.ktor:ktor-html-builder:$ktor_version"
    compile "io.ktor:ktor-gson:$ktor_version"
    compile "io.ktor:ktor-freemarker:$ktor_version"

    compile 'org.jetbrains.exposed:exposed:0.8.5'
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.12'

    providedCompile "com.google.appengine:appengine:$appengine_version"
}

kotlin.experimental.coroutines = 'enable'

task run(dependsOn: appengineRun)

И сначала проект работал успешно. На тот момент у меня был класс модели:

class User()

Но когда я добавил две аннотации - @Entity и @Id из пакета io.objectbox.annotation - к этому классу:

@Entity
class User(@Id val id: Long)

произошла ошибка: java.lang.reflect.UndeclaredThrowableException. И, несмотря на ошибку, ObjectBox сгенерировал код с MyObjectBox:

В чем причина этой ошибки? И я знаю, что в основном ObjectBox считается базой данных для мобильных устройств. Так можно ли вообще использовать ObjectBox в качестве базы данных в приложении с Ktor?

enter image description here

...