Xslt saxon:发送邮件函数返回java.lang.NullPointerException错误

Xslt saxon:发送邮件函数返回java.lang.NullPointerException错误,xslt,saxon,Xslt,Saxon,我在SaxonEE9.7.0.15中使用oXygen编辑器XML编辑器19.0 为了测试saxon:send-mail函数,我编写了下面的简单样式表,但每次尝试运行它时,saxon都会返回java.lang.NullPointerException错误。扩展功能(-ext)被激活。我在Saxon PE中也遇到了同样的错误 有人知道错误可能来自哪里吗 以下是样式表: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xm

我在SaxonEE9.7.0.15中使用oXygen编辑器XML编辑器19.0

为了测试saxon:send-mail函数,我编写了下面的简单样式表,但每次尝试运行它时,saxon都会返回java.lang.NullPointerException错误。扩展功能(-ext)被激活。我在Saxon PE中也遇到了同样的错误

有人知道错误可能来自哪里吗

以下是样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:saxon="http://saxon.sf.net/"
    exclude-result-prefixes="xs" version="3.0">

    <xsl:variable name="mailSetup" as="map(xs:string, xs:string)">
        <xsl:map>
            <xsl:map-entry key="'to'" select="'me@gmail.com'"/>
            <xsl:map-entry key="'from'" select="'me@gmail.com'"/>
            <xsl:map-entry key="'smtp-server'" select="'smtp.gmail.com'"/>
            <xsl:map-entry key="'username'" select="'me@gmail.com'"/>
            <xsl:map-entry key="'password'" select="'mepassword'"/>
        </xsl:map>
    </xsl:variable>

    <xsl:variable name="html" as="xs:string">
      <![CDATA[ <html>
            <body>
                <h1>Test saxon:send-mail</h1>
                <p>Test Ok</p>
            </body>
        </html>]]> 
    </xsl:variable>

    <xsl:template name="main">
        <xsl:value-of select="saxon:send-mail($mailSetup, 'Test', $html, ())"/>
    </xsl:template>

</xsl:stylesheet>

测试saxon:发送邮件
测试正常

]]>
作为Saxon bug记录在此处:

如果映射中缺少任何邮件选项,则会发生NPE。在您的情况下,缺少的选项是realname

此处记录了这些选项:


除了文档中似乎缺少“cc”选项之外。

Saxon似乎使用的javax.mail API不是Java SE的一部分,因此您可能需要从中安装它并将其放在类路径上。我还没有检查这是否解决了问题。似乎将jar放在类路径上,并从命令行运行Saxon并不能解决问题,在9.7中,我得到了NullPointerException,你说你在氧气中,对于9.8,我得到了一个由NullPointerException引起的RuntimeException。而oXygen似乎已经有了一个
mailapi.jar
。对于NullPointerException,它总是有助于提供堆栈跟踪。还需要html选项。有没有办法要求连接是SSL?您可以通过设置Java系统属性来配置它,看见