猿问

将 JDO 项目迁移到谷歌云端点 v2,服务器返回 NoClassDefFoundError

我尝试将使用 JDO 的谷歌云项目从端点 v1 迁移到 v2。我已经按照迁移指南和这里的一些解决方案尝试使 datanucleous 插件增强我的类,并将它们上传到谷歌云,但没有运气。


我将发布 build.gradle,然后是客户端尝试连接到端点时返回的服务器错误,这是一个 NoClassFound 错误。


构建.gradle:


buildscript {

    repositories {

        mavenCentral()

        mavenLocal()

    }

    dependencies {

        // App Engine Gradle plugin

        classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.3'


        // Endpoints Frameworks Gradle plugin

        classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.2'


    }

}


repositories {

    mavenCentral();

    jcenter()

}


apply plugin: 'java'

apply plugin: 'war'


// [START apply_plugins]

apply plugin: 'com.google.cloud.tools.appengine'

apply plugin: 'com.google.cloud.tools.endpoints-framework-server'

// [END apply_plugins]


dependencies {

    compile ('com.google.endpoints:endpoints-framework:2.0.8') {

        exclude group: 'com.google.guava', module: 'guava-jdk5'

    }


    compile 'javax.servlet:servlet-api:2.5'

    compile 'com.ganyo:gcm-server:1.0.2'

    compile 'javax.jdo:jdo-api:3.0.1'

    compile 'org.datanucleus:datanucleus-core:3.1.3'

    compile 'org.datanucleus:datanucleus-api-jdo:3.1.3'

    compile 'org.datanucleus:datanucleus-accessplatform-jdo-rdbms:4.1.1'

    compile 'com.google.appengine.orm:datanucleus-appengine:2.1.2'

    compile 'com.google.code.gson:gson:2.2.4'

    compile 'org.apache.commons:commons-lang3:3.5'

}


sourceCompatibility = JavaVersion.VERSION_1_7

targetCompatibility = JavaVersion.VERSION_1_7


appengine {  // App Engine tasks configuration

    deploy {   // deploy configuration

        version = findProperty("appengine.deploy.version")


        def promoteProp = findProperty("appengine.deploy.promote")

        if (promoteProp != null) {

            promote = new Boolean(promoteProp)

        }


    }

}


endpointsServer {

    // Endpoints Framework Plugin server-side configuration

    hostname = "komilibro.appspot.com"

}


素胚勾勒不出你
浏览 166回答 2
2回答

喵喵时光机

在这个迁移页面的最后,有一个标签为“JPA/JDO Datanucleus 增强问题”的部分,它链接到一个 StackOverflow 示例,其中包含 Datanucleus 的工作 gradle 配置。我会非常仔细地查看此规范示例与您自己的 gradle 构建文件之间的任何差异。
随时随地看视频慕课网APP

相关分类

Java
我要回答