2013-11-02 174 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

從構建路徑中刪除這些,同時保持撒克遜人,解決了我的問題。