【发布时间】: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,提供堆栈跟踪总是有帮助的。