2015-05-26 31 views
0

我已經完成了本教程(http://springandgrailsmusings.blogspot.co.uk/2011/02/using-amazon-ses-from-grails.html),以將SES的amazon sdk插件集成到grails中,但是當我嘗試訪問視圖保存時遇到了下一個錯誤:在grails中使用亞馬遜SES時出錯

Error 2015-05-26 12:36:53,390 [http-bio-8080-exec-7] ERROR errors.GrailsExceptionResolver - MissingMethodException occurred when processing request: [GET] /Plugin/sendEmail/save 
No signature of method: org.plugin.SendEmailController.sesMail() is applicable for argument types: (org.plugin.SendEmailController$_save_closure2) values: [[email protected]]. Stacktrace follows: 
Message: No signature of method: org.plugin.SendEmailController.sesMail() is applicable for argument types: (org.plugin.SendEmailController$_save_closure2) values: [[email protected]] 
    Line | Method 
->> 25 | save  in org.plugin.SendEmailController 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 198 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|  63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 745 | run  in java.lang.Thread 

這是我的控制器:

class SendEmailController { 
    static scaffold = true 

    def index() { } 

    def save(){ 
     def mailId = sesMail { 
      from "myemail" 
      to "youremail" 
      subject "test plain text mail" 
      body "this is the e-mail content, sent at: (${new Date().format('dd/MM/yyyy HH:mm')})" 
     } 
     flash.message = "E-mail sent: ${mailId}" 
    } 
} 

我的Config.groovy

grails { 
    plugin { 
     aws { 
      credentials { 
       accessKey = "bbb" 
       secretKey = "aaaa" 
      } 
      ses { 
       enabled = true 
       from = "mymail" 
      } 
     } 
    } 
} 

BuildConfig.groovy

grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0) 
grails.project.class.dir = "target/classes" 
grails.project.test.class.dir = "target/test-classes" 
grails.project.test.reports.dir = "target/test-reports" 
grails.project.work.dir = "target/work" 
grails.project.target.level = 1.6 
grails.project.source.level = 1.6 
//grails.project.war.file = "target/${appName}-${appVersion}.war" 

grails.project.fork = [ 
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required 
    // compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true], 

    // configure settings for the test-app JVM, uses the daemon by default 
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true], 
    // configure settings for the run-app JVM 
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], 
    // configure settings for the run-war JVM 
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], 
    // configure settings for the Console UI JVM 
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256] 
] 

grails.project.dependency.resolver = "maven" // or ivy 
grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // specify dependency exclusions here; for example, uncomment this to disable ehcache: 
     // excludes 'ehcache' 
    } 
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
    checksums true // Whether to verify checksums on resolve 
    legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility 

    repositories { 
     inherits true // Whether to inherit repository definitions from plugins 

     grailsPlugins() 
     grailsHome() 
     mavenLocal() 
     grailsCentral() 
     mavenCentral() 
     // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories 
     //mavenRepo "http://repository.codehaus.org" 
     //mavenRepo "http://download.java.net/maven/2/" 
     //mavenRepo "http://repository.jboss.com/maven2/" 
    } 

    dependencies { 
     // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g. 
     // runtime 'mysql:mysql-connector-java:5.1.29' 
     // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41' 
     test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4" 
     build 'org.apache.httpcomponents:httpcore:4.2' 
     build 'org.apache.httpcomponents:httpclient:4.2' 
     runtime 'org.apache.httpcomponents:httpcore:4.2' 
     runtime 'org.apache.httpcomponents:httpclient:4.2' 
    } 

    plugins { 
     // plugins for the build system only 
     build ":tomcat:7.0.55" 

     // plugins for the compile step 
     compile ":scaffolding:2.1.2" 
     compile ':cache:1.1.8' 
     compile ":asset-pipeline:1.9.9" 


     // plugins needed at runtime but not for compilation 
     runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18" 
     runtime ":database-migration:1.4.0" 
     runtime ":jquery:1.11.1" 
     runtime ':aws-sdk:1.9.37' 

     // Uncomment these to enable additional asset-pipeline capabilities 
     //compile ":sass-asset-pipeline:1.9.0" 
     //compile ":less-asset-pipeline:1.10.0" 
     //compile ":coffee-asset-pipeline:1.8.0" 
     //compile ":handlebars-asset-pipeline:1.3.0.3" 
    } 
} 
+0

你可以添加你的BuildConfig.groovy信息嗎?查看您正在使用的插件會很有幫助。 – Nathan

+0

嗨內森,我只是添加buildConfig.groovy – Simpson

回答

0

我想你已經安裝了錯誤的插件。您需要安裝aws而不是the one我在您的Buildconfig中看到

0

請注意,由於SES接受標準SMTP協議,因此根本不需要AWS插件。

您可以簡單地使用郵件插件。