2012-07-01 11 views
5

Mam trudności z poprawnym działaniem Datanucleus 2 w ulepszaniu klas w GAE 1.7.0 w Eclipse za pomocą wtyczki Datanucleus. To działało poprawnie w starszych wersjach GAE kiedy będę wykonaj czynności manualnych tutaj:Datanucleus za pomocą niewłaściwego wzmacniacza w Google App Engine 1.7

http://www.datanucleus.org/products/accessplatform/guides/eclipse/index.html

Ale od modernizacji, GAE zawiera teraz te bibliotekami (nowsze wersje nich to wygląda), a także GAE ma nową flagę "wzmacniacza", którą możesz ustawić. Mimo to nie mogę znaleźć tej flagi w Eclipse. Wydaje się, że GAE jest nadal w tym bibliotekami v1, kiedy chcę z bibliotekami V2 i Datanucleus jest o konflikty według tego błędu:

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) 

Próbowałem wiele różnych rzeczy. Próbowałem używać wszystkich wartości domyślnych. Próbowałem już dodawać biblioteki v2 do wehikułów środowiska wykonawczego Datanucleus Classpath. Próbowałem usunąć biblioteki v1 w SDK 1.7.0 SDK zarówno w src jak i libs. Ale jakoś GAE wciąż się podciąga (lub próbuje przeciągnąć biblioteki V1.) Próbowałem nawet starszej metody ręcznego konfigurowania konfiguracji zgodnie z linkiem powyżej.To trochę frustrujące, ponieważ wydaje mi się, że jestem teraz w sytuacji, w której nie mogę w ogóle używać tych bibliotek, przynajmniej w starszych wersjach GAE mogłem ręcznie skonfigurować go do pracy Nic nie wydaje się działać teraz Jakieś sugestie?

+0

Co "DataNucleus 2"? DataNucleus jest obecnie w wersji 3.0 i 3.1. Wtyczka Googles znajduje się na v 2.0.1.1 (przy użyciu DataNucleus v3.0.x) – DataNucleus

+0

Ahh w prawo. Tak, dołączona wersja DataNucleus to v3.0.x. Udało mi się go uruchomić, ręcznie usuwając biblioteki v1 z src i lib w wersji GAE 1.7.0, aby GAE przestał próbować umieścić je w WEB-INF/lib. Wystąpiły konflikty z bibliotekami DataNucleus v3 i v1 na ścieżce klas. GAE stwierdza, że ​​możesz dodać flagę wzmacniacza, aby określić, których wersji użyć, ale nie widzę sposobu użycia tej flagi w Eclipse, aby powstrzymać ją przed kopiowaniem tych bibliotek. Tak więc obejście wydaje mi się skuteczne. To nie jest idealne, ale zadziała. – DavidB

+0

@DataNucleus Podczas przeglądania folderu appengine 1.7, słoiki Datanucleus są datanucleus-core-1.1.5.jar, datanucleus-jpa-1.1.5 itp. Co masz na myśli przez wtyczkę Google korzystającą z Datanucleus v3.0.x? – xybrek

Odpowiedz

7

Wystąpił ten sam błąd i zostałem w stanie rozwiązać go w moim projekcie przez:.

  • Robi co davidb sugerowane w komentarzach, bez modyfikowania ustawień DataNucleus WZP w preferencjach
  • Usuwanie wszystkich „V1” słoiki z wojny/WEB-INF/lib

Aby wyjaśnić sugestię davidb, otwórz katalog, który posiada swój projekt. Zostanie utworzony folder o nazwie ".settings", otwórz go i edytuj com.google.appengine.eclipse.core.prefs. Wystarczy zmienić trzecią linię z gaeDatanucleusVersion = v1 do gaeDatanucleusVersion = v2

Gdy już to zrobisz, usuń następujące słoiki z was war/WEB-INF/lib:

  • datanucleus- AppEngine-1.0.10.final.jar
  • datanucleus rdzeń-1.1.5.jar
  • datanucleus, JPA-1.1.5.jar
  • geronimo-jpa_3.0_spec-1.1.1.jar
  • geronimo-jta_1.1_spec-1.1.1.jar
  • jdo2-api-2,3-eb.jar

Restart zaćmienie i powinno być dobrze iść.

+0

Sprawdź również biblioteki ścieżek budowania. W moim przypadku były to dwa pliki SDK App Engine ... jedno z v1 i drugie z v2. –

+1

Natknąłem się na ten sam problem w GAE 1.7.2 i musiałem usunąć linię "filesCopiedToWebInfLib" ..... filesCopiedToWebInfLib = appengine-api-labs.jar | appengine-endpoints.jar | appengine-jsr107cache-1.7 .2.1.jar | jsr107cache-1.1.jar | appengine-api-1.0-sdk-1.7.2.1.jar | datanucleus-appengine-1.0.10.final.jar | datanucleus-core-1.1.5.jar | datanucleus-jpa -1.1.5.jar | geronimo-jpa_3.0_spec-1.1.1.jar | geronimo-jta_1.1_spec-1.1.1.jar | jdo2-api-2.3-eb.jar – Santthosh

+1

Miałem problem, w którym zaćmienie rozpoczęło wszystkie nagłe poszukiwanie geronimo-jpa_3.0_spec-1.1.1.jar pod v1. usunięcie v1 w folderze dodatku GAE SDK rozwiązało problem. – AsafK