0

我通过将其置于转换中来对 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: Cannot execute null+null at org.codehaus.groovy.runtime.NullObject.plus(NullObject.java:121) ... at org.moqui.impl.context。 WebFacadeImpl.getWebappRootUrl(WebFacadeImpl.groovy:272)

因为 webappName 和 servletContextPath 都是空的。

这来自 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 应该在哪里设置?

4

0 回答 0