Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TransformerConfiguration异常:无法编译sytlesheet_Java_Xml_Xslt_Transformer - Fatal编程技术网

Java TransformerConfiguration异常:无法编译sytlesheet

Java TransformerConfiguration异常:无法编译sytlesheet,java,xml,xslt,transformer,Java,Xml,Xslt,Transformer,当我尝试在web应用程序中使用xslt转换xml时,会在weblogic 10.3服务器中引发TransformerConfigurationException异常。同样的web应用程序代码在Tomcat7.0中运行良好。我不知道这一异常的原因是什么 Exception: javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet ERROR: 'Syntax error in 'form

当我尝试在web应用程序中使用xslt转换xml时,会在weblogic 10.3服务器中引发TransformerConfigurationException异常。同样的web应用程序代码在Tomcat7.0中运行良好。我不知道这一异常的原因是什么

Exception:
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
ERROR: 'Syntax error in 'format-date($date,'[MNn][D],[Y]','en',(),())'.'
FATAL ERROR: 'Could not compile stylesheet'
在删除xslt中的format date函数后,我得到了另一个异常(javax.xml.tranform.TransformerException:java.lang.ArrayIndexOutOfBoundsException)

代码:

格式-日期()
是XSLT 2.0函数。当您使用JAXP TransformerConfiguration工厂加载XSLT transformer时,您无法控制返回的处理器是XSLT 1.0还是2.0处理器-这取决于在类路径上找到了什么。我猜类路径上没有XSLT 2.0处理器,因此已加载默认的内置Xalan处理器,这不支持XSLT 2.0(因此
format-date()

如果您的代码依赖于XSLT2.0,那么

a) 确保Saxon位于类路径上

b) 通过替换

TransformerFactory factory = TransformerFactory.newInstance();

TransformerFactory factory = TransformerFactory.newInstance();
TransformerFactory factory = new net.sf.saxon.TransformerFactoryImpl();