我正在尝试使用appengine
插件设置项目。我有多个错误,可能是因为我不知道如何将它们组合在一起。
例如,当执行gradle appengineRun
时,一切正常,直到我在浏览器中打开网站。然后我收到:
org.datanucleus.exceptions.NucleusUserException:
Found Meta-Data for class com.sample.Message but this class is not enhanced!!
Please enhance the class before running DataNucleus.
快速查看任务列表显示有适当的任务:appengineEnhance
。不幸的是,当任务运行时,它失败并出现一个神秘的异常J ava returned: 1
。但是在日志中我发现了更多描述性信息:
java.lang.RuntimeException: Unexpected exception
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:76)
at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:71)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:51)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74)
... 2 more
Caused by: java.lang.NoSuchMethodError: org.datanucleus.plugin.PluginManager.<init>(Lorg/datanucleus/PersistenceConfiguration;Lorg/datanucleus/ClassLoaderResolver;)V
at org.datanucleus.OMFContext.<init>(OMFContext.java:159)
at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:172)
at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:150)
at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1157)
... 7 more
据我所知,罐子之间存在一些不相容之处。知道怎么解决这个问题吗?
我的build.gradle
文件如下:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.appengine:gradle-appengine-plugin:1.8.7'
}
}
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
providedCompile 'com.google.code.gson:gson:2.2.2'
providedCompile 'com.google.guava:guava:14.0.1'
providedCompile 'org.apache.commons:commons-lang3:3.1'
providedCompile 'commons-io:commons-io:2.4'
def jacksonVer = '2.2.0'
providedCompile "com.fasterxml.jackson.core:jackson-core:$jacksonVer"
providedCompile "com.fasterxml.jackson.core:jackson-databind:$jacksonVer"
providedCompile 'javax:javaee-api:6.0'
providedCompile 'com.google.appengine:appengine-api-1.0-sdk:1.8.7'
providedCompile 'org.reflections:reflections:0.9.9-RC1'
providedCompile 'org.datanucleus:datanucleus-core:3.1.3'
}
task wrapper(type: Wrapper) {
gradleVersion = '1.10'
}
appengine {
httpPort = 6380
}
答案 0 :(得分:1)
实际上经过一段时间后发现这真是一个愚蠢的错误。最初开发项目的人(在一开始)没有使用任何构建工具并直接从eclipse部署。在eclipse中,他准备了 war 结构,并且所有类别都被复制到WEB-INF/classes
,其中放置了.gitignore
文件以忽略所提及目录的内容。 appengine
工作正常!