我将sendEmailTemplate置于转换过程中,对其进行了测试:
<actions>
<!--
<service-call name="org.moqui.impl.UserServices.reset#Password"/>
-->
<service-call name="org.moqui.impl.EmailServices.send#EmailTemplate">
<field-map field-name="emailTemplateId" value="PASSWORD_RESET"/>
<field-map field-name="toAddresses" value="test@gmail.com"/>
<field-map field-name="bodyParameters" from="[userAccount:userAccount, newPassword: 'xxxxxxx']"/>
</service-call>
...
我最终得到了这个错误: java.lang.NullPointerException:无法执行null + null 在org.codehaus.groovy.runtime.NullObject.plus(NullObject.java:121) ... 在org.moqui.impl.context.WebFacadeImpl.getWebappRootUrl(WebFacadeImpl.groovy:272)
因为webappName和servletContextPath都是null。
这来自sendEmailTemplate(ln 77)中的文本呈现,因此webappName未设置,因为它位于上面的调用中。
但是所有这些都忽略了这一点 - 我想。我认为错误在ScreenUrlInfo(~ln 450)中:
if (sri.baseLinkUrl) {
baseUrl = sri.baseLinkUrl
if (baseUrl && baseUrl.charAt(baseUrl.length()-1) == '/') baseUrl.substring(0, baseUrl.length()-1)
} else {
baseUrl = WebFacadeImpl.getWebappRootUrl(sri.webappName, sri.servletContextPath, true,
this.requireEncryption, (ExecutionContextImpl) ec)
}
sri.baseLinkUrl未设置,我认为这是问题所在。应该在哪里设置sri.baseLinkUrl?