2010-10-14 19 views
7

First Eclipse:Eclipse Google-APP -Engine "nie będzie Enhance"

Nie mogę pozbyć się tego błędu ... Próbowałem każdą zaproponowaną poprawkę na google ..

Persistent klasy „Class com .blahb.blahblah.master.UserToken nie wydaje się być ulepszony. Możesz ponownie uruchomić wzmacniacz i sprawdzić błędy w wynikach. " nie ma tabeli w bazie danych, ale operacja tego wymaga. Sprawdź specyfikację MetaData dla tej klasy.

List of 500 lines of exceptions... 
*Caused by: 
javax.jdo.JDOUserException: Persistent class "Class com.blahb.blahblah.master.UserToken does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. 
    at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:375) 
    at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230) 
    at com.gulfnet.gulfstar.master.Master.getUserToken(Master.java:645) 
    at org.apache.jsp.top_jsp._jspService(top_jsp.java:68) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) 
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet* 

Moje współpracownik ma ten sam projekt na swoim komputerze Windows i działa dobrze ...

Próbowałem trzech różnych systemów Linux, Mac, Windows, 3 różne wersje eclipse PC, 20 różne sposoby importowania, tworzenia nowego projektu, itp.

Tak, .classpath została poprawiona, aby odzwierciedlić poprawną lokalizację wszystkich plików JAR. Próbowałem dodać każdą klasę, java, słoik zgodnie z sugestią na jednym z blogów google do klasy/buildpath (okno -> pref -> google -> orm) nic ...

I gdzie jest to cholerne "Enhancer Console", które ma być w Eclipse ...? Używam najnowszego Eclipse, z WSZYSTKIM wtyczkami silnika aplikacji Google.

Jakieś pomysły ...? Ktoś..?

Dziękujemy!

Odpowiedz

0

miałem t on sam błąd iw moim przypadku właśnie rozwiązania sprawiają, klasa nie trwała komentując tę ​​linię:

@PersistenceCapable(identityType = IdentityType.APPLICATION) 

Następnie uruchom mojej aplikacji i pojawia się błąd o wytrwałości, zatrzymać, znak komentarza poprzedniej linii i ponownie uruchomić aplikację.

0

Ten problem został rozwiązany za mną przez dodanie klucza podstawowego, tak jak poniżej:

@PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;

1

prawym przyciskiem myszy na projekcie, a następnie Właściwości> Builders. Czy istnieje punkt taki jak "Missing Builder (org.datanucleus.ide.eclipse.enhancerbuilder)"?

Jeśli tworzysz nową Web Application projektu, upewniając się, że „Za pomocą Google Web Toolkit” i „Użyj Google App Engine” są zaznaczone, a następnie jeszcze raz w Właściwości> Remont, to wtedy powiedzieć „wzmacniacz” zamiast "Brakujący budowniczy"?

Jeśli tak, rozwiązaniem jest na pewno utworzenie nowego projektu od podstaw, a następnie ręczne przeniesienie zawartości ze starego projektu do nowego. Po prostu importowanie starego projektu do innego Eclipse nie działa, wzmacniacz nadal go nie będzie.

3

Problem polega na tym, że Enhancer dla DataNucleus zostaje usunięty z listy Builderów dla projektu. Dla mnie cały projekt Czysty, przebudowany itp. Nie pomógł. Co trzeba zrobić, to (1) Utwórz nowy przykładowy projekt GAE, otwórz „.project” plik tego projektu w edytorze tekstowym, skopiuj ten tekst stamtąd:

<buildCommand> 
    <name>com.google.appengine.eclipse.core.enhancerbuilder</name> 
    <arguments></arguments> 
</buildCommand> 

Teraz skopiuj to na dno listy budowniczych we własnym pliku .project. Teraz DataNucleus powinien działać dobrze. Nie mam pojęcia, dlaczego czasami się zdarza.

1

Aktualizacja do najnowszej wersji aplikacji java sdk rozwiązała go dla mnie.

1

Zmiana wersji SDK działała dla mnie.

Co ciekawe, korzystałem już z najnowszej wersji. Powrót do poprzedniej wersji był jedynym sposobem, w jaki mogłem uruchomić krok "ulepszania". Było to ze skryptem kompilacji gradle.

Powiązane problemy