Java: XML / XSL Transformer, как получить больше информации об ошибке? - PullRequest
0 голосов
/ 15 марта 2010

Я получаю исключение для Transformer transformer = tFactory.newTransformer(StreamXSL); , но ошибка ниже не является явной. Я не могу понять, почему "Не удалось скомпилировать таблицу стилей"?

Tks

static String getHtml(String xml)
{
    Element elementObj = getElementObject(xml);
    String xslName = getValueOfElement(elementObj, xml, "XSL_TO_RUN");
    StreamSource StreamXML = new StreamSource(new StringReader(xml));
    try{
        TransformerFactory tFactory = TransformerFactory.newInstance();

        if(xslName!=null){

            String xslfile  = xslName;

            File xfile = new File(xslfile);
            if (xfile.exists()){}
            else
            {
                 LogI.log(4,"getHtml:: ERROR:  xsl file don´t Exist! " + xslName );
                 return null;
            }
            StreamSource StreamXSL = new StreamSource(xfile);

            Transformer transformer = tFactory.newTransformer(StreamXSL);



        }else{
            LogI.log(0,"getHtml::ERROR->Error on create  stream XSL");
            return null;
        }

    }   catch(TransformerConfigurationException ex){
        LogI.log(0,"getHtml::Erro crossing the XML with the XSL:" + ex);
        LogI.log(0,"getHtml::Erro crossing the XML with the XSL(1):" + ex.getMessageAndLocation());
        LogI.log(0,"getHtml::Erro crossing the XML with the XSL(2):" + ex.getMessage());
        for(int i=0;i<ex.getStackTrace().length;i++){
            LogI.log(0, "ARQ::Pedido:: ERRO(2) ->" + ex.getStackTrace()[i]);
        }

        return null;

    } catch(Exception e){
        LogI.log(0,"getHtml::Erro crossing the XML with the XSL:" + e);
        //out.clear();
        //out.println(errorPage);
        return null;
    }
}

Вот вывод:

ERRO: getHtml::Erro crossing the XML with the XSL:javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
ERRO: getHtml::Erro crossing the XML with the XSL(1):Could not compile stylesheet
ERRO: getHtml::Erro crossing the XML with the XSL(2):Could not compile stylesheet
ERRO: ARQ::Pedido:: ERRO(2) ->com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source)
ERRO: ARQ::Pedido:: ERRO(2) ->com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source)
ERRO: ARQ::Pedido:: ERRO(2) ->BizBanc.Arq.getHtml(Arq.java:189)
ERRO: ARQ::Pedido:: ERRO(2) ->BizBanc.Arq.getResponse(Arq.java:792)

1 Ответ

0 голосов
/ 15 марта 2010

Ваш вывод показывает, что вы получаете TransformerConfigurationException; в соответствии с [API] (http://java.sun.com/javase/6/docs/api/javax/xml/transform/TransformerFactory.html#newTransformer(javax.xml.transform.Source)), это

«Выдается, если при синтаксическом анализе источника возникли ошибки или невозможно создать экземпляр Transformer.»

Ваш синтаксис выглядит нормально, поэтому я подозреваю, что ваш файл вызывает проблему. Я вижу, что вы проверяете, существует ли файл, но вы уверены, что его содержимое в порядке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...