Отсутствует статический метод get в доменном классе Grails - PullRequest
1 голос
/ 18 февраля 2011

Мы постоянно получаем следующую ошибку при производстве с граалями.Он говорит, что нет метода get для данного класса домена.Это происходит один раз в несколько дней в коде, который выполняется примерно 300 раз в минуту.Мы не смогли воспроизвести его.

No signature of method: static DomainClass.get() is applicable for argument types: (java.lang.Long) values: [97]

Кто-нибудь еще сталкивался с этой проблемой?Мы используем Grails 1.3.6.Идентификаторы в наших классах домена - это стандартные значения по умолчанию.Мы работаем с Sun jvm версии 1.6.0_17-b04.

Обновление:

Я узнал немного больше, когда ошибка произошла сегодня.Мы используем плагин JMS Grails, и ошибка возникает в одном из классов, который получает сообщения JMS.Похоже, что плагин JMS начинает доставлять сообщения до того, как Grails завершит загрузку приложения.Если в очереди есть сообщения при запуске grails, в журнале начинают появляться исключения.Как только Grails начался полностью, ошибки прекращаются и сообщения обрабатываются нормально.Я предполагаю, что контекст весны внутри grails запускается до того, как динамические методы добавляются в классы Domain.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2011

Как вы сказали, ваш идентификатор для класса домена по умолчанию GORM, поэтому ошибка в Grails Jira, на которую указывает hvgotcodes, не применима в вашем случае (они имеют дело со строкой id).

Я предполагаю, что это может быть где-то, аргумент, передаваемый в метод get (), не является "длинным типом". Очень легко пропустить, например, параметр 'id', передаваемый методом GET / POST (по умолчанию GORM), является строковым типом и должен быть преобразован в Long перед использованием.

Например:

def id = params.id
def object = DomainClass.get(id as Long)
0 голосов
/ 18 февраля 2011

Возможно, вы столкнулись с этой проблемой

http://jira.codehaus.org/browse/GRAILS-4467

Что немного странно, так это то, что это случается очень часто. Вы уверены, что реальный метод, который терпит неудачу, вызывается так часто?

...