#spring #email #grails #asynchronous #grails-2.3
#spring #Адрес электронной почты #grails #асинхронный #grails-2.3
Вопрос:
я хочу интегрировать плагин grails asynchronous-mail: 1.0 в свое приложение, для этого я добавил следующее в свою сборку конфигурации компиляции «: asynchronous-mail: 1.0»
после этого, когда я попытался запустить -приложение, которое завершается сбоем из-за следующих исключений
| Error 2014-06-26 11:49:55,958 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Error creating bean with name 'nonAsynchronousMailService': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'grailsApplication' of bean class [grails.plugin.mail.MailService]: Bean property 'grailsApplication' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Message: Error creating bean with name 'nonAsynchronousMailService': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'grailsApplication' of bean class [grails.plugin.mail.MailService]: Bean property 'grailsApplication' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Line | Method
->> 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Caused by NotWritablePropertyException: Invalid property 'grailsApplication' of bean class [grails.plugin.mail.MailService]: Bean property 'grailsApplication' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
->> 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
| Error Forked Grails VM exited with error
если я удалю
compile «: asynchronous-mail: 1.0»
из build-config.groovy
приложение работает хорошо
, есть ли какие-либо проблемы с grails версии 2.3.9 или с плагином асинхронной почты
функции в асинхронном почтовом плагине, похоже, действительно хороши и хотят его использовать
я использую следующий плагин, и они работают нормально
build ":tomcat:7.0.53"
// plugins for the compile step
compile ":scaffolding:2.0.3"
compile ':cache:1.1.2'
runtime ":hibernate:3.6.10.15" // or ":hibernate4:4.3.5.2"
runtime ":database-migration:1.4.0"
runtime ":jquery:1.8.3"
runtime ":resources:1.2.8"
compile ':cache:1.0.1'
compile ':spring-security-core:2.0-RC2'
runtime ":email-confirmation:2.0.8"
provided ":codenarc:0.21"
compile (":postgresql-extensions:0.9.0") {
excludes "hibernate"
}
compile ":browser-detection:0.4.3"
Любой, кто сталкивается с этой проблемой, пожалуйста, помогите
заранее спасибо
Комментарии:
1. в документах плагина говорится, что он был перенесен в плагин quartz. Также это зависит от плагинов hibernate, quartz и mail. Остановите сервер, включите оставшиеся зависимости, затем обновите свои зависимости из IDE, затем попробуйте выполнить grails clean.
2. привет, swapnil, я также использую подтверждение по электронной почте, которое, в свою очередь, зависит от плагина quartz и почты, нужно ли мне настраивать их отдельно?
3. На данный момент, пожалуйста, удалите подтверждение электронной почты, обновите, очистите, а затем попробуйте эти плагины, настроив их отдельно. Сначала выполните эту работу, а затем перейдите к подтверждению по электронной почте.
4. привет, Swapnil, спасибо, переупорядочение подтверждения электронной почты после асинхронного, а затем обновление зависимостей сработало для меня.
5. Я рад, что это сработало для вас. поэтому я опубликую это как ответ, который вы должны принять, поскольку от этого выиграют другие читатели.
Ответ №1:
в документах плагина говорится, что он был перенесен в плагин quartz.Также это зависит от плагинов hibernate, quartz и mail. Остановите сервер, включите оставшиеся зависимости, затем обновите свои зависимости из IDE, затем попробуйте выполнить grails clean.
На данный момент, пожалуйста, удалите подтверждение электронной почты, обновите, очистите, а затем попробуйте эти плагины, настроив их отдельно. Сначала запустите работу с асинхронной почтой, а затем перейдите к подтверждению электронной почты. т.е. Измените порядок подтверждения электронной почты после асинхронного.
Комментарии:
1. Плагину не нужно включать дополнительные зависимости. Он содержит их все.
Ответ №2:
Какую версию JDK вы используете?
Попробуйте обновить свой плагин quartz, mail и spring security core.
compile ":quartz:1.0.2"
compile ":mail:1.0.5", {
excludes 'spring-test'
}
compile ':spring-security-core:2.0-RC3'
Перезапустите плагин grails после очистки.
Комментарии:
1. привет, спасибо за быстрый ответ, я использую quartz, mail и spring security core, все плагины обновлены до последней версии, и в соответствии с JDK я использую oracle jdk7
2. Хорошо, посмотрев на ваш buildconfig (опубликованный в выпуске), я подумал, что вы используете более старую версию этих 3 плагинов. Я свяжусь с вами по этому поводу.
Ответ №3:
Вы можете просто исключить зависимости от mail и quartz подтверждения электронной почты
runtime ":email-confirmation:2.0.8" {
excludes 'mail', 'quartz'
}
Попробуйте использовать последний релиз-кандидат :asynchronous-mail:1.1-RC1
.