【问题标题】:internal error evaluating template rule xslt评估模板规则 xslt 的内部错误
【发布时间】:2018-05-14 05:40:38
【问题描述】:

我正在尝试在我的一个服务器中使用 XSLT 组合一组 XML 文件,并收到以下文件集错误(不是所有文件):

 \f0\fs22 \cf2 \cb3 \CocoaLigature0 Writing to file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/cust_Story_u4f9.xml\
URIResolver.resolve href="Story_u4f9.xml" base="file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/RawMap.xslt"\
Building tree for file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/Story_u4f9.xml using class net.sf.saxon.tree.tiny.TinyBuilder\
Tree built in 6.666093ms\
Tree size: 287 nodes, 2003 characters, 388 attributes\
Writing to file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/cust_Story_u4ac.xml\
URIResolver.resolve href="Story_u4ac.xml" base="file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/RawMap.xslt"\
Building tree for file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/Story_u4ac.xml using class net.sf.saxon.tree.tiny.TinyBuilder\
java.lang.RuntimeException: Internal error evaluating template rule  at line 8 in module file:/opt/Liferay-Bundle/tomcat-7.0.42/temp/temp128140163092620110910826941/OneShot/ParaNumber/RawMap.xslt\
    at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:366)\
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:456)\
    at net.sf.saxon.trans.TextOnlyCopyRuleSet.process(TextOnlyCopyRuleSet.java:65)\
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:433)\
    at net.sf.saxon.Controller.transformDocument(Controller.java:2277)\
    at net.sf.saxon.Controller.transform(Controller.java:1854)\
    at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:579)\
    at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:185)\
    at com.library.hook.action.RunnableDemo.simpleTransformI2W(RunnableDemo.java:768)\
    at com.library.hook.action.IdmlToXHTMLThread.run(IdmlToXHTMLThread.java:369)\
    at java.lang.Thread.run(Thread.java:748)\
Caused by: java.lang.NullPointerException\
    at oracle.xml.parser.v2.NonValidatingParser.resolveNS(NonValidatingParser.java:1803)\
    at oracle.xml.parser.v2.NonValidatingParser.expandNamespace(NonValidatingParser.java:1754)\
    at oracle.xml.parser.v2.NonValidatingParser.parseAttributes(NonValidatingParser.java:1445)\
    at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1274)\
    at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:324)\
    at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:291)\
    at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:207)\
    at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:451)\
    at net.sf.saxon.event.Sender.send(Sender.java:153)\
    at net.sf.saxon.functions.DocumentFn.makeDoc(DocumentFn.java:370)\
    at net.sf.saxon.functions.DocumentFn$DocumentMappingFunction.mapItem(DocumentFn.java:190)\
    at net.sf.saxon.expr.ItemMappingIterator.next(ItemMappingIterator.java:113)\
    at net.sf.saxon.expr.sort.DocumentOrderIterator.<init>(DocumentOrderIterator.java:47)\
    at net.sf.saxon.functions.DocumentFn.call(DocumentFn.java:161)\
    at net.sf.saxon.expr.FunctionCall.iterate(FunctionCall.java:546)\
    at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:278)\
    at net.sf.saxon.expr.instruct.ApplyTemplates.process(ApplyTemplates.java:251)\
    at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:470)\
    at net.sf.saxon.Configuration.processResultDocument(Configuration.java:2131)\
    at net.sf.saxon.expr.instruct.ResultDocument.process(ResultDocument.java:382)\
    at net.sf.saxon.expr.instruct.ResultDocument.processLeavingTail(ResultDocument.java:368)\
    at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:653)\
    at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:149)\
    at net.sf.saxon.expr.instruct.ForEach.processLeavingTail(ForEach.java:453)\
    at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:149)\
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:364)\
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:311)\
    at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:149)\
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:364)\
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:311)\
    at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:149)\
    at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:470)\
    at net.sf.saxon.Configuration.processResultDocument(Configuration.java:2131)\
    at net.sf.saxon.expr.instruct.ResultDocument.process(ResultDocument.java:382)\
    at net.sf.saxon.expr.instruct.ResultDocument.processLeavingTail(ResultDocument.java:368)\
    at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:653)\
    at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:711)\
    at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:353)\
    ... 10 more\

我已经尝试了 xslt 的 document()collection() 方法,它们可以用来合并文件。但得到同样的错误。

主要问题是,这个错误只发生在这个特定的服务器上。当我在本地或其他服务器上运行同一组文件时,它运行没有任何问题。

过程中用到了以下内容:

XSLT 2.0

撒克逊 9.7.0-8

java 1.7.0_95

任何帮助将不胜感激。

【问题讨论】:

    标签: java server xslt-2.0 saxon


    【解决方案1】:

    它在 Oracle XDK 解析器中严重崩溃(Saxon 只是在传递坏消息)。不幸的是,解析器不是开源的,我怀疑 Oracle 正在监视这个论坛,所以从技术上讲,你应该向 Oracle 提出支持请求。在实践中,最好的方法可能是切换到不同的解析器:JDK 内置的解析器或 Apache Xerces。

    我怀疑您使用 XDK 解析器的唯一原因是它恰好位于类路径中,或者存在于“认可的库”目录中。

    您可以在使用方法Processor.setConfigurationProperty(FeatureKeys.SOURCE_PARSER_CLASS, className) 调用document() 函数时更改Saxon 使用的解析器。

    【讨论】:

    • 非常感谢 Michale Kay 先生,这解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    相关资源
    最近更新 更多