Ошибка при запуске или настройке приложения grails с помощью плагина asynchrounous mail вызывает исключения

#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 .