XML Calabash 1.0.23을 사용하여 단일 파이프 라인에서 XSLT 변환 및 FO 형식을 실행하려고합니다. XSLT 단계는 정상적으로 작동하지만 xsl- 포맷터 단계를 FOP와 함께 사용할 수 없습니다.Calabash 1.0.23이 xsl-formatter 단계에서 throw됩니다. 오류 : FO 공급자를 인스턴스화하지 못했습니다.
내가 파이프 라인을 실행할 때마다, 호리병박 예외 :
ERROR: pipeline.xpl:13:68:Failed to instantiate FO provider
ERROR: Underlying exception: org/apache/fop/apps/FopFactory
명령 줄에서 호리병박 내 호출은 다음과 같습니다
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는 설정 파일 설정을 무시한 것 같습니다. 특성의 값에 관계없이 <cc:fo-processor>
에 대한 특성에 관계없이 항상 동일한 오류 메시지가 throw됩니다. 예를 들어 com.xmlcalabash.util.FoAH
을 사용하는 경우에도 마찬가지입니다. 무의미한 값을 넣으면 똑같이 발생합니다. 항상 org/apache/fop/apps/FopFactory
을 예외로합니다. 내가 수동으로 1.1 FOP하기 위해 XSLT 단계에서 생성 된 FO를 통과 할 경우 아무런 문제없이 PDF로 변환, 물론
<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>
: 그냥 완성도를 위해서
이 내 XPL입니다. 이 문제는 파이프 라인 내에서 변환을 시도 할 때만 발생합니다.
이 문제를 해결하기 위해 도움을받을 수 있습니다. 나는이 시점에서 우둔하다.
@Norman : Calabash를 사용하기 전에 모든 설정을 관리하는 fop.bat를 수동으로 사용했습니다. 칼라 바쉬의 경우 classpath에 fop.jar를 추가했지만 ** 모든 FOP의 라이브러리 jar (FOP lib 디렉토리의 모든 jar 파일) **에 대해 동일한 작업을 수행해야한다는 것을 알지 못했습니다. FOP의 메인 클래스가 자동으로 처리한다고 가정했다. 그것은 내 혼란을 야기했다. 이제 정상적으로 작동합니다. 지도 해줘서 고마워. 그것은 올바른 방향으로 나를 인도했습니다. – ARX