Вызов функции xslt document () с относительным путем в WebLogic - PullRequest
1 голос
/ 23 декабря 2011

В таблице стилей XSL я пытаюсь использовать функцию document () с относительным путем к файлу XML.Файл XML, который я пытаюсь загрузить, находится в той же папке, что и таблица стилей.Код в бэкэнде вызывает XSLT с использованием преобразователя

Java Code

    TransformerFactory tFactory = TransformerFactory.newInstance();
    InputStream inXSL = getClass().getResourceAsStream("/input.xsl");
    Transformer transformer = tFactory.newTransformer(new StreamSource(inXSL));
    transformer.transform(new StreamSource(inXMLStream), new StreamResult(outStream));

XSL

    <xsl:variable name="configXml" select="document('config.xml')" />

Но по какой-то причине он, похоже, не загружаетфайл, он выдает следующую ошибку, FODC0005: java.io.FileNotFoundException: D: \ Applications \ weblogic_domain \ config.xml Кажется, что XSL ищет файл в папке домена WebLogic, а не путь к веб-приложениям.

1 Ответ

2 голосов
/ 23 декабря 2011

Поскольку вы предоставляете StreamSource и не устанавливаете systemId, процессор XSLT не знает, откуда была загружена таблица стилей, поэтому он не может интеллектуально разрешить относительный URI. Используйте метод setSystemId () в StreamSource, чтобы установить базовый URI для таблицы стилей.

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