Я видел аналогичный вопрос, заданный с той же ошибкой, что и у меня, однако контекст был другим. У меня нет проблем с тестированием, скорее, создание пользователей и ролей полностью завершается при запуске.Плагин весны Security grails терпит неудачу при развертывании в качестве war tomcat 6
При использовании плагина пружинными безопасности ядро 1.2.7 с Грааль 1.3.7 и Tomcat 6, я получаю эту ошибку:
2012-01-04 16: 23: 12,476 [главной] Ошибку контекста. ContextLoader - Ошибка инициализации контекста org.springframework.beans.factory.access.BootstrapException: ошибка при выполнении bootstraps; Вложенное исключение - org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: Нет сигнатуры метода: setTest.Role.save() применим для типов аргументов: (java.util.LinkedHashMap) значения: [[flush: true]] Возможные решения: wait(), any(), wait (long), any (groovy.lang.Closure), sleep (long), использовать ([Ljava.lang.Object;) at org.codehaus. groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext (GrailsContextLoader.java:87) ...
приложение работает нормально при запуске с Grails runApp, но на war'ing, он не разворачивать каждый раз. Ошибка, кажется, сосредотачивается вокруг моего создания учетной записи/роли пользователя в загрузчике:
def adminRole = new Role(authority: 'ROLE_ADMIN').save(flush: true)
def userRole = new Role(authority: 'ROLE_USER').save(flush: true)
def testUser = new User(username: 'me', enabled: true, password: 'password')
testUser.save(flush: true)
UserRole.create testUser, adminRole, true
Это взят из учебника springSecurity непосредственно. Какие-либо предложения?
Редактировать: Кроме того, это также терпит неудачу во время войны с grails prod и напрямую связано с созданием роли/пользователя. Даже с разными именами для пользователей и ролей проблема сохраняется.
Редактировать 2: Кроме того, сбой происходит на .save(), который, конечно же, отображается в исходном сообщении об ошибке. Я проверил, что обычный .save() против save (flush: true) не имеет значения.
Редактировать 3: Кажется, это может быть ошибка в текущей версии плагина: http://jira.grails.org/browse/GPSPRINGSECURITYCORE-152 Я буду держать вас в курсе!
Редактировать 4: Подтверждено, возвращение к версии 1.2.6, похоже, устраняет проблему!
Если вы удалите плагин и запустите «grails clean» и передислоцируете, он все еще не работает? Классы домена по-прежнему будут работать, поскольку они не связаны с плагином (за исключением содержимого кодировки пароля в пользовательском классе, вам нужно прокомментировать это). Я пытаюсь понять, действительно ли это проблема с плагином или если это красная селедка. –
Да, это 100% воспроизводимый в любом чистом проекте. Сделайте чистое приложение grails, установите весеннее ядро безопасности, добавьте группу или пользователя в загрузочный блок, убедитесь, что вы вызываете save() для этого пользователя/группы, чтобы сохранить его, а затем попробуйте grails prod runWar. Или возьмите на себя войну Grails и выполните развертывание на сервере приложений. Все еще бывает – Quad64Bit
Извините, я имею в виду, что он не работает без установленного плагина.Я не вижу, как плагин каким-либо образом повлияет на GORM. –