Почему я получаю ClassNotPersistableException при запущении приложения Механизма Приложения GWT в размещенном режиме?

Одиночные короткие выписки:

if (condition) output = firstChoice;
else doSomethingElse();

Многократные или длинные выписки

if (condition) {
   output = firstChoice;
   ...
} else {
   ...
}
13
задан Otavio 17 June 2009 в 03:58
поделиться

3 ответа

Я почти уверен, что в вашем коде нет ничего плохого. Причина, по которой вы получаете эту ошибку, заключается в проблеме с усилителем Datanucleus.

Если вы видите эту ошибку, выйдите из Jetty и проверьте консоль внутри Eclipse (вам нужно выбрать правильную консоль на маленькой панели инструментов над консолью окно). Должно быть написано что-то вроде:

DataNucleus Enhancer (версия 1.1.4): Улучшение классов. DataNucleus Enhancer успешно завершен для классов X . Тайминги: вход = 547 мс, усиление = 76 мс, всего = 623 мс. Для получения полной информации обратитесь к журналу

... где X - количество обработанных классов. Число должно быть равно количеству определенных вами «сущностей».

Но иногда по какой-то причине отображается 0, поэтому вы получаете ошибку ClassNotPersistableException.

Чтобы исправить, откройте класс сущности, измените что-нибудь (добавьте пробел или что-то еще) и сохраните. Проверяйте консоль, пока она не сообщит, что она улучшила все ваши классы сущностей. Затем перезапустите отладчик и повторите попытку.

15
ответ дан 1 December 2019 в 22:08
поделиться

"The class "com.wayd.server.beans.WinePost" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found."

So why not check each of those 3 conditions ? One of them is true.

-1
ответ дан 1 December 2019 в 22:08
поделиться

Я раньше видел нечто очень похожее, и это было связано с тем, что persistantManager вызывается разными методами одновременно. Это происходит потому, что pm должен быть единственным экземпляром (который не является singleton , поэтому вам придется управлять им самостоятельно).

Условия могут измениться между средой разработки и производственной средой после развертывания, так что это также может объяснить то, что вы видите.

Проблема была решена путем использования synchronized в объявлениях методов, которые воспользуйтесь PM.

Может быть, это не ваш случай, но вы можете попробовать.

2
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: