2013-11-02 141 views
0

我有这个格式良好的XSLT文件,可以将XML文件转换为略有不同的XML文件。当我在普通的Java运行穿越 - 我的设置工作,但是当我尝试运行我的谷歌应用程序引擎代码时,我尝试加载XSLT文件,并出现以下错误消息崩溃:Google App Engine中的XSLT(Java)

ERROR: 'null' 
FATAL ERROR: 'Could not compile stylesheet' 
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet 
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source) 
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source) 

的Java:

(东西放在这里错)

InputStream is = context.getResourceAsStream("/xslt/add_spaces_and_ids.xslt"); 
    if (is == null) { 
     throw new NullPointerException("File could not be found"); 
    } 
    Source xsltSource = new StreamSource(is); 
    Transformer transformer = factory.newTransformer(xsltSource); 
    return transformer; 

XSLT:

(应该是没有什么特别的)

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:strip-space elements="*"/> 
    <xsl:output method="xml" indent="yes"/> 
    <xsl:template match="kop"> 
    <xsl:variable name="kopText"> 
     <xsl:value-of select="."/> 
    </xsl:variable> 
    <xsl:variable name="titelText"> 
     <xsl:value-of select="titel"/> 
    </xsl:variable> 
    <!-- Add a space --> 
    <xsl:text> </xsl:text> 
    <xsl:copy> 
     <xsl:attribute name="id"> 
     <xsl:value-of select="generate-id()" /> 
     </xsl:attribute> 
     <xsl:apply-templates select="node() | @*"/> 
    </xsl:copy> 
    </xsl:template> 
    <xsl:template match="node()"> 
    <xsl:text> </xsl:text> 
    <xsl:copy> 
     <xsl:apply-templates select="node() | @*"/> 
    </xsl:copy> 
    </xsl:template> 
    <xsl:template match="@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node() | @*" /> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

我怎样才能解决这个问题?

回答

0

我在我的构建路径一些相互矛盾的库:

xercesImps.jarxml-apis.jar,并且serializer.jar

从构建路径中删除这些,同时保持撒克逊人,解决了我的问题。