0

我有一个传递给 XSL 转换器的 XML 对象,传递的日期是长表示

<xsl:variable name="nominationEffectiveDate" select="NomApprovalCase/nominationEffectiveDate"></xsl:variable>
<xsl:choose>
   <xsl:when test="$nominationEffectiveDate !=''">
      <xsl:value-of select="java:format(java:java.text.SimpleDateFormat.new('MMM, dd yyyy'), java:java.util.Date.new(number($nominationEffectiveDate)))" />
   </xsl:when>
   <xsl:otherwise>
      <xsl:text><![CDATA[&nbsp;]]>the start of the demand response period<![CDATA[&nbsp;]]></xsl:text>
   </xsl:otherwise>
</xsl:choose>

我添加了我的 XSL 的一个片段,例如“1383264000000”之类的日期,我希望它类似于“2013 年 6 月 1 日”。但是,运行转换会出现以下错误。

线程“主”java.lang.VerifyError 中的异常:(类:customernotify,方法:template$dot$0 签名:(Lcom/sun/org/apache/xalan/internal/xsltc/DOM;Lcom/sun/org/apache/ xml/internal/dtm/DTMAxisIterator;Lcom/sun/org/apache/xml/internal/serializer/SerializationHandler;I)V) 期望在 java.lang.Class.getDeclaredConstructors0(Native Method) 在 java.lang 的堆栈上找到 double .Class.privateGetDeclaredConstructors(Class.java:2389) 在 java.lang.Class.getConstructor0(Class.java:2699) 在 java.lang.Class.newInstance0(Class.java:326) 在 java.lang.Class.newInstance( Class.java:308) 在 com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.getTransletInstance(TemplatesImpl.java:364) 在 com.sun.org.apache.xalan.internal.xsltc.trax。 com.sun 上的 TemplatesImpl.newTransformer(TemplatesImpl.java:394)。org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:649) 在 com.enernoc.pe.applications.scheduldbatch.nomapproval.xmlprocessing.GenerateEmailPreview.generate(GenerateEmailPreview.java:30) 在 com。 enernoc.pe.applications.scheduldbatch.nomapproval.CustomerEmailGenerator.generateHtml(CustomerEmailGenerator.java:65) 在 com.enernoc.pe.applications.scheduledbatch.nomapproval.EmailPreviewerPlugin$EmailPreviewProcessor.process(EmailPreviewerPlugin.java:169) 在 com.enernoc。 pe.applications.scheduledbatch.nomapproval.EmailPreviewerPlugin$EmailPreviewProcessor.process(EmailPreviewerPlugin.java:1) 在 com.enernoc.pe.applications.scheduledbatch.nomapproval.DqCheckProcessor.process(DqCheckProcessor.java:93) 在 com.enernoc.pe。 applications.scheduldbatch.nomapproval。DqCheckProcessor.process(DqCheckProcessor.java:1) 在 com.enernoc.pe.applications.scheduldbatch.nomapproval.Salesforce.call(Salesforce.java:87) 在 com.enernoc.pe.applications.scheduldbatch.nomapproval.EmailPreviewerPlugin$MyCallable。在 com.enernoc.pe.applications.scheduldbatch.nomapproval.EmailPreviewerPlugin$MyCallable.call(EmailPreviewerPlugin.java:1) 在 com.enernoc.pe.pipeline.push.framework.AbstractPlugin.call( AbstractPlugin.java:44) 在 com.enernoc.pe.pipeline.push.framework.AbstractPlugin.call(AbstractPlugin.java:1) 在 com.enernoc.pe.applications.scheduldbatch.Main.main(Main.java:196)nomapproval.EmailPreviewerPlugin$MyCallable.call(EmailPreviewerPlugin.java:102) 在 com.enernoc.pe.applications.scheduledbatch.nomapproval.EmailPreviewerPlugin$MyCallable.call(EmailPreviewerPlugin.java:1) 在 com.enernoc.pe.pipeline.push。 framework.AbstractPlugin.call(AbstractPlugin.java:44) at com.enernoc.pe.pipeline.push.framework.AbstractPlugin.call(AbstractPlugin.java:1) at com.enernoc.pe.applications.scheduledbatch.Main.main( Main.java:196)nomapproval.EmailPreviewerPlugin$MyCallable.call(EmailPreviewerPlugin.java:102) 在 com.enernoc.pe.applications.scheduledbatch.nomapproval.EmailPreviewerPlugin$MyCallable.call(EmailPreviewerPlugin.java:1) 在 com.enernoc.pe.pipeline.push。 framework.AbstractPlugin.call(AbstractPlugin.java:44) at com.enernoc.pe.pipeline.push.framework.AbstractPlugin.call(AbstractPlugin.java:1) at com.enernoc.pe.applications.scheduledbatch.Main.main( Main.java:196)1) 在 com.enernoc.pe.applications.scheduldbatch.Main.main(Main.java:196)1) 在 com.enernoc.pe.applications.scheduldbatch.Main.main(Main.java:196)

4

1 回答 1

0

尝试类似的东西

<xsl:when test="number($nominationEffectiveDate)">
    <!-- ... -->
</xsl:when>

测试''并不能保护您免受NaN价值观的影响。

于 2013-11-14T16:38:09.100 回答