Calabash 1.0.23 выбрасывает на шаг xsl-formatter: ОШИБКА: не удалось создать провайдера FO
Я пытаюсь использовать XML Calabash 1.0.23 для запуска XSLT-преобразования и FO-форматирования в одном конвейере. Хотя шаг XSLT работает нормально, я не могу заставить шаг xsl-formatter работать с FOP.
Каждый раз, когда я запускаю трубопровод, Калабаш бросает:
ERROR: pipeline.xpl:13:68:Failed to instantiate FO provider
ERROR: Underlying exception: org/apache/fop/apps/FopFactory
Мой звонок в Calabash из командной строки:
java com.xmlcalabash.drivers.Main -c cfg.xml myPipeline.xpl
И файл конфигурации cfg.xml, упомянутый в приведенной выше строке:
<cc:xproc-config xmlns:cc="http://xmlcalabash.com/ns/configuration">
<cc:fo-processor class-name="com.xmlcalabash.util.FoFOP"/>
</cc:xproc-config>
По некоторым причинам, Calabash, похоже, игнорирует настройку файла конфигурации, потому что независимо от значения атрибута class-name на <cc:fo-processor>
всегда выдает одно и то же сообщение об ошибке. Например, если я использую com.xmlcalabash.util.FoAH
происходит то же самое; и если поставить бессмысленное значение, то же самое происходит. Это всегда исключение на org/apache/fop/apps/FopFactory
,
Просто для полноты, это мой XPL:
<declare-step name="main" version="1.0" xmlns="http://www.w3.org/ns/xproc">
<input port="parameters" kind="parameter" />
<xslt name="transformation">
<input port="source">
<document href="myMarkup.xml" />
</input>
<input port="stylesheet">
<document href="myStylesheet.xsl" />
</input>
</xslt>
<xsl-formatter href="newDoc.pdf" >
<input port="source">
<pipe step="transformation" port="result" />
</input>
</xsl-formatter>
</declare-step>
Конечно, если я вручную передам сгенерированный FO из шага XSLT в FOP 1.1, он без проблем преобразует его в PDF. Проблема возникает только при попытке выполнить преобразование в конвейере.
Я мог бы действительно использовать некоторую помощь, чтобы решить это. Я невежественен в этом пункте.
1 ответ
Это может показаться очень педантичным ответом, но есть ли на вашем classpath файл fop.jar (и fop-hyph.jar, который, как мне кажется, требует FOP)? Они не включены в дистрибутив XML Calabash, вы должны получить их от Apache.