【问题标题】:saxon:send-mail function return java.lang.NullPointerException errorsaxon:send-mail 函数返回 java.lang.NullPointerException 错误
【发布时间】:2017-08-17 16:57:22
【问题描述】:

我正在使用 oXygen 编辑器 XML Editor 19.0 和 Saxon-EE 9.7.0.15。

我编写了下面的简单样式表来测试 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 似乎使用了 javax.mail API,它不是 Java SE 的一部分,因此您可能需要从 javaee.github.io/javamail/#Download_JavaMail_Release 安装它并将其放在类路径中。我还没有检查这是否能解决问题。
  • 似乎将 jar 放在类路径上并从命令行运行 Saxon 并不能解决问题,在 9.7 中我得到 NullPointerException 你说你进入 oXygen,在 9.8 中我得到一个 RuntimeException 导致通过 NullPointerException。
  • 而且 oXygen 似乎已经带有 mailapi.jar
  • 对于 NullPointerException,提供堆栈跟踪总是有帮助的。

标签: xslt saxon


【解决方案1】:

作为撒克逊错误记录在这里:

https://saxonica.plan.io/issues/3400

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

这里记录了这些选项:

http://www.saxonica.com/documentation/index.html#!functions/saxon/send-mail

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

【讨论】:

猜你喜欢
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 2019-08-06
  • 1970-01-01
  • 2014-07-24
  • 2021-12-13
  • 2021-05-10
相关资源
最近更新 更多