У меня возникли трудности с правильной работой Datanucleus 2 с улучшением классов на GAE 1.7.0 в Eclipse с использованием плагина Datanucleus. Это работало отлично в старых версиях GAE, когда я следовать действиям вручную здесь:Datanucleus с использованием неправильного энхансера в Google App Engine 1.7
http://www.datanucleus.org/products/accessplatform/guides/eclipse/index.html
Но поскольку при обновлении, GAE теперь включает в себя эту LIBS (новые версии из них она выглядит), а также имеет GAE новый флаг «энхансер», который вы можете установить. Однако я не могу найти этот флаг в Eclipse. Оказывается, что GAE еще включая v1 LIBS, когда я хочу, LIBS V2 и DataNucleus испытывает конфликты в соответствии с этой ошибкой:
Jul 1, 2012 5:59:55 PM org.datanucleus.enhancer.DataNucleusEnhancer <init>
INFO: DataNucleus Enhancer : Using ClassEnhancer "ASM" for API "JPA"
Exception in thread "main" java.lang.NoSuchFieldError: NUCLEUS_CONTEXT_LOADER
at org.datanucleus.NucleusContext.<clinit>(NucleusContext.java:73)
at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:171)
at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1265)
Я пробовал много разных вещей. Я пробовал использовать все значения по умолчанию. Я попробовал добавить v2 libs к записям классов пути Datanucleus. Я попытался удалить v1 libs в GAE 1.7.0 SDK как в src, так и в libs. Но каким-то образом GAE все еще тянет (или пытается потянуть за V1 libs). Я даже попробовал более старый метод настройки конфигурации вручную, как указано в приведенной выше ссылке. Это немного расстраивает, поскольку кажется, что я сейчас в ситуации, когда я вообще не могу использовать эти библиотеки. По крайней мере, со старыми версиями GAE я мог бы вручную настроить его на работу. Теперь ничего не работает. Любые предложения?
Что такое "DataNucleus 2"? DataNucleus в настоящее время находится в версиях 3.0 и 3.1. Плагин Googles находится в версии 2.0.1.1 (с использованием DataNucleus v3.0.x) – DataNucleus
Ahh right. Да, версия DataNucleus включена v3.0.x. Я смог заставить его работать, вручную удалив v1 libs из src и lib в GAE версии 1.7.0, чтобы GAE перестала пытаться помещать их в WEB-INF/lib. Я получал конфликты с v3 и v1 DataNucleus libs в пути к классам. GAE заявляет, что вы можете добавить флаг энхансера, чтобы сообщить, какие версии использовать, но я не вижу, как использовать этот флаг с Eclipse, чтобы он не копировал эти библиотеки. Поэтому обходной путь, похоже, работает для меня. Это не идеально, но это сработает. – DavidB
@DataNucleus Когда я просматриваю папку appengine 1.7, банки Datanucleus являются datanucleus-core-1.1.5.jar, datanucleus-jpa-1.1.5 и т. Д. Что вы подразумеваете под плагином Google, использующим Datanucleus v3.0.x? – xybrek