当前位置: 首页 > 知识库问答 >
问题:

tomcat下服务中的grails sendmail失败

宇文卓
2023-03-14

我正在尝试在服务中使用grails邮件插件。它在grails环境中运行良好(使用“grails run app”),但当我在独立的tomcat中部署war时,我得到了NPE。

我的配置文件:

plugins {
   // plugins for the build system only
    build ":tomcat:7.0.54"
// plugins for the compile step
compile ":scaffolding:2.1.2"
compile ':cache:1.1.7'
compile ":asset-pipeline:1.8.11"
compile ":mail:1.0.7"
compile ":quartz:1.0.2"
compile ":quartz-monitor:1.0"
compile ":eclipse-scripts:1.0.7"
//runtime ":cors:1.1.6"

//runtime 'org.springframework.security:spring-security-ldap:3.2.4.RELEASE'
// plugins needed at runtime but not for compilation
runtime ":hibernate4:4.3.5.4" // or ":hibernate:3.6.10.15"
runtime ":database-migration:1.4.0"
runtime ":jquery:1.11.1"
//runtime ':db-reverse-engineer:0.5'
compile ":jms:1.3"

runtime ":resources:1.2.8"
runtime ":cached-resources:1.0"
runtime ":zipped-resources:1.0"
runtime ":yui-minify-resources:0.1.5"
compile ":cache-headers:1.1.7"
compile ":marshallers:0.6"

}

服务文件中的邮件发送:

log.info "using view.."
sendMail {
        to "${userDetails.email}"
        subject "Your request was successfully processed."
        html view:'/SuccessMailView',model: [title:"${req.title}",DESC:"${req.description}"]
    }

错误:我仔细检查了“视图”文件夹下的“成功邮件iew.gsp”,它在grails环境中发送邮件很好。要生成war,我使用了“grails dev war”,然后将文件复制到tomcat webapps目录。Tomcat与我的grails在同一台主机上,但在不同的端口上运行。我也试了

body( view:'/SuccessMailView',model: [title:"${req.title}",DESC:"${req.description}"])

但同样的错误。

java.lang.NullPointerException
        at java.net.URI$Parser.parse(URI.java:3023)
        at java.net.URI.<init>(URI.java:595)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
        at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
        at grails.plugin.mail.MailMessageContentRenderer$PageRenderRequestCreator.createInstance(MailMessageContentRenderer.groovy:198)
        at grails.plugin.mail.MailMessageContentRenderer$PageRenderRequestCreator$createInstance.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
        at grails.plugin.mail.MailMessageContentRenderer$RenderEnvironment.init(MailMessageContentRenderer.groovy:147)
        at grails.plugin.mail.MailMessageContentRenderer$RenderEnvironment.this$2$init(MailMessageContentRenderer.groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:68)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
        at grails.plugin.mail.MailMessageContentRenderer$RenderEnvironment.with(MailMessageContentRenderer.groovy:178)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:148)
        at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at grails.plugin.mail.MailMessageContentRenderer.render(MailMessageContentRenderer.groovy:63)
        at grails.plugin.mail.MailMessageContentRenderer$render.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at grails.plugin.mail.MailMessageBuilder.doRender(MailMessageBuilder.groovy:277)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
        at grails.plugin.mail.MailMessageBuilder.html(MailMessageBuilder.groovy:295)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1085)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:997)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)

共有1个答案

谢志文
2023-03-14

最后这对我起了作用(来自另一个帖子)

   // inject the service
   def groovyPageRenderer

   def content = groovyPageRenderer.render(view: 'SuccessMailView', model: [title:"${req.title}",DESC:"${req.description}"])

        mailService.sendMail {
            to user.email
            from "email@test.com"
            subject "MySubject"
            html(content)
        }
 类似资料:
  • 我想知道为什么JNDI数据源bean不能从@service class访问?有什么想法吗?

  • 链接到问题:https://github.com/jenca-cloud/docker-bimserver/issues/1 指向DockerFile的链接:https://hub.docker.com/r/connoralexander/docker-bimserver/ 大家好,我有一个问题是Tomcat8没有启动服务。正在使用设置的用户名和密码成功安装Tomcat 8.0.30。它成功地wg

  • 本文向大家介绍Window下安装Tomcat服务器的教程,包括了Window下安装Tomcat服务器的教程的使用技巧和注意事项,需要的朋友参考一下 1 下载并准备 首先,我们需要到官网下载Tomcat。 将Tomcat下载Windows的zip文件下载到本地: 接下来,我们将下载的zip文件解压出来,如下: 2 安装 打开Windows终端,然后进入Tomcat的bin目录中: D:\soft\t

  • Tomcat Server9.0在eclipse中没有启动,它显示错误“服务器Tomcat V9.0服务器在本地主机启动失败。”我尝试了很多事情,从改变端口到卸载Tomcat和eclipse然后重新安装,但没有任何变化,提前感谢您的帮助。 2018年11月25日下午12:13:59 org.apache.catalina.core.containerbase startInternal grave

  • 本文向大家介绍图解Linux下安装Tomcat服务器,包括了图解Linux下安装Tomcat服务器的使用技巧和注意事项,需要的朋友参考一下 图解Linux下安装Tomcat服务器的具体过程,供大家参考,具体内容如下 上传Tomcat服务器: 首先,需要下载Tomcat-上传到服务器。 安装Tomcat服务器 解压tomcat服务器压缩包 现在已经在java目录下了。 tar zxvf apache

  • 任何帮助都是非常感谢的,因为我被同样的信息和大量的帖子所困扰,这些帖子建议相同的事情有不同的变化,到目前为止,没有任何工作。 编辑: 以下是完整的Apache Tomcat或TomEE消息: 编辑:这是当我试图使用NetBeans的时候,一旦我开始使用STS,我就没有任何Tomcat的问题了。