FUBAR после обновления до GAE-java-sdk-1.6.0 / 1.6.1 persistencemanager singleton - PullRequest
0 голосов
/ 21 декабря 2011

После того, как я обновил GAE-JAVA-SDK-1.5.5 до 1.6.0 и 1.6.1, мое приложение перестало нормально работать.он начал выдавать ошибку в службе RPC.

Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void com.skip.school.client.service.AdminService.addStudent(com.skip.school.shared.Student)' threw an unexpected exception: java.lang.NoClassDefFoundError: Could not initialize class com.skip.school.server.PmfSingleton

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.skip.school.server.PmfSingleton

Весь журнал можно найти здесь pastebin .

У меня есть синглтон, который должен быть инициализирован припользователь начинает там первый вызов RPC.Синглтон, который я использую, должен быть правильным, есть много примеров, найденных здесь на stackeroverflow и повсюду в Интернете.

public final class PmfSingleton {
    private final static PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional");

    private PmfSingleton() { }

    public static PersistenceManagerFactory get() {
    return pmfInstance;    
    }
}

Я называю этот класс во всех моих реализациях сервера примерно так.

PersistenceManager pm = PmfSingleton.get().getPersistenceManager();

это работает на SDK 1.5.5 и ниже, но не на SDK 1.6.0 и выше, кто-нибудь знает, что я делаю неправильно, что я должен изменить, если я хочу использовать SDK 1.6.0 ивыше

Ответы [ 2 ]

1 голос
/ 20 января 2012

Я читал где-то еще, что эта проблема связана с устаревшей версией банок datanucelus.Я обновил до последней версии v1.6.1, доступной из плагина eclipse, и исправил ее, удалив все старые ссылки на старые jar, оставив только эти 3:

  • datanucleus-appengine-1.0.10.final.jar
  • datanucleus-core-1.1.5.jar
  • datanucleus-jpa-1.1.5.jar

Я надеюсь, что это работаетдля тебя!

0 голосов
/ 15 июня 2012

У меня была такая же проблема после обновления до новой версии AppEngine SDK.Оказывается, проблема в том, что у меня в папке развертывания висела старая версия jar appengine-api-1.0-sdk.

Загляните в папку war\WEB-INF\lib вашего приложения и посмотрите, есть лидве разные версии appengine-api-1.0-sdk-1.x.y.jar.Я исправил это, удалив файл appengine-api-1.0-sdk-1.5.x.

...