java - Datanucleus 增强器不适用于 appengine

标签 java google-app-engine maven jpa datanucleus

目前,我正在使用 Spring、JPA、AppEngine 和 Datanucleus 开发一个用 Java 编写的 Web 应用程序。一切都运行良好,直到上周突然间什么都无法编译(甚至 SVN 上的旧版本也无法编译)。

我目前使用的版本是:

  • 数据核:3.2.5
  • 应用引擎:1.8.1
  • datanucleus-appengine: 2.1.2
  • datanucleus-jpa: 2.1.8
  • datanucleus-api-jpa: 3.3.0-m1
  • datanucleus-maven-plugin: 3.3.0-m1

连同其他一些依赖项,但我认为列表中的那些是最重要的。一切都是使用 Maven 编译的。当我运行 maven clean installmaven datanucleus:enhance 增强器崩溃时:

[ERROR] --------------------
[ERROR]  Standard error from the DataNucleus tool + org.datanucleus.enhancer.DataNucleusEnhancer :
[ERROR] --------------------
[ERROR] Exception in thread "main" java.lang.NoSuchMethodError: org.datanucleus.metadata.MetaDataManager.getOMFContext()Lorg/datanucleus/OMFContext;
        at org.datanucleus.jpa.metadata.JPAAnnotationReader.processClassAnnotations(JPAAnnotationReader.java:199)
        at org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:126)
        at org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:171)
        at org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:2757)
        at org.datanucleus.metadata.MetaDataManager.loadPersistenceUnit(MetaDataManager.java:1015)
        at org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:796)
        at org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:513)
        at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1281)

[ERROR] --------------------

它还给出了一些其他错误:

Extension Point "org.datanucleus.implementation_creator" not registered, but plugin "org.datanucleus.enhancer" defined in file:/D:/FBLAAUW/.m2/repository/org/datanucleus/datanucleus-enhancer/3.1.1/datanucleus-enhancer-3.1.1.jar refers to it.

以及以下几个错误(大约 100 个)

ERROR DataNucleus.Persistence  - User-defined type mapping class "org.datanucleus.store.types.sco.simple.Collection" was not found. Please check the mapping file class specifications and your CLASSPATH. The class must be in the CLASSPATH.

我使用的是 JRE 1.7,但我也尝试过使用 JRE 1.6(同样没有用)。我的猜测是使用的版本彼此不兼容,但我不确定。有人对此有想法吗?

最佳答案

建议大家整理一下使用的jar版本。 This page说明 Google 的“datanucleus-appengine”与 DataNucleus 项目 jar 的兼容性

关于java - Datanucleus 增强器不适用于 appengine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466744/

相关文章:

java - 在同一轴上平移和旋转时出现奇怪的行为

java - 无法从 Eclipse、ADT 22.6 创建或编辑 Android 虚拟设备 (AVD)

java - 使用 Python 获取 API - 超时问题

php - 如何让我的应用程序在 appengine 上运行

eclipse - 如何使用 Maven 和 Tomcat 在 Eclipse 中启动、调试和构建 Java Web 项目

java - Maven中Jetty插件的企业用途是什么?

java.sql.SQLException : No suitable driver found for jdbc:mysql://localhost:3306/database

java - 为 Google 的 Android 滑动选项卡着色

java - 在 Java 中将日期从 UTC 转换为 PST

python - 试图找到一个带有不等式的纯Python整数线性规划求解器