2015-02-04 5 views
1

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입니다. 이 문제는 파이프 라인 내에서 변환을 시도 할 때만 발생합니다.

이 문제를 해결하기 위해 도움을받을 수 있습니다. 나는이 시점에서 우둔하다.

답변

1

매우 유감스러운 답장처럼 보일지 모르지만 클래스 패스에 fop.jar (FOP가 필요하다고 생각하는 fop-hyph.jar)가 있습니까? 그들은 XML Calabash 배포판에 번들로 제공되지 않으므로 Apache에서 가져와야합니다.

+1

@Norman : Calabash를 사용하기 전에 모든 설정을 관리하는 fop.bat를 수동으로 사용했습니다. 칼라 바쉬의 경우 classpath에 fop.jar를 추가했지만 ** 모든 FOP의 라이브러리 jar (FOP lib 디렉토리의 모든 jar 파일) **에 대해 동일한 작업을 수행해야한다는 것을 알지 못했습니다. FOP의 메인 클래스가 자동으로 처리한다고 가정했다. 그것은 내 혼란을 야기했다. 이제 정상적으로 작동합니다. 지도 해줘서 고마워. 그것은 올바른 방향으로 나를 인도했습니다. – ARX