2013-04-19 1 views
0

에서 PDF로 변환하는 동안 이러한 방법의 오류, 나는이 링크자바 PDF로 XSLT 변환하는 동안은 문제가 있다면 자바

"Java Transformation to PDF"에 게시 된 동일한 프로세스를 다음 없습니다입니다.

오류 :

`

Caused by: java.lang.NoSuchMethodError: org.apache.xmlgraphics.java2d.GraphicContext.<init>(Lorg/apache/xmlgraphics/java2d/GraphicContext;)V 
    at org.apache.fop.render.intermediate.IFGraphicContext.<init>(IFGraphicContext.java:50) 
    at org.apache.fop.render.intermediate.IFGraphicContext.clone(IFGraphicContext.java:56) 
    at org.apache.fop.render.intermediate.IFRenderer.saveGraphicsState(IFRenderer.java:632) 
    at org.apache.fop.render.intermediate.IFRenderer.startViewport(IFRenderer.java:885) 
    at org.apache.fop.render.intermediate.IFRenderer.startVParea(IFRenderer.java:878) 
    at org.apache.fop.render.AbstractRenderer.renderRegionViewport(AbstractRenderer.java:289) 
    at org.apache.fop.render.intermediate.IFRenderer.renderRegionViewport(IFRenderer.java:731) 
    at org.apache.fop.render.AbstractRenderer.renderPageAreas(AbstractRenderer.java:249) 
    at org.apache.fop.render.AbstractRenderer.renderPage(AbstractRenderer.java:230) 
    at org.apache.fop.render.intermediate.IFRenderer.renderPage(IFRenderer.java:580) 
    at org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:114) 
    at org.apache.fop.layoutmgr.AbstractPageSequenceLayoutManager.finishPage(AbstractPageSequenceLayoutManager.java:312) 
    at org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:167) 
    at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:109) 
    at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:238) 
    at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:120) 
    at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349) 
    at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177) 
    at net.sf.saxon.event.ContentHandlerProxy.endElement(ContentHandlerProxy.java:391) 
    at net.sf.saxon.event.ProxyReceiver.endElement(ProxyReceiver.java:174) 
    at net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:213) 
    at net.sf.saxon.event.ComplexContentOutputter.endElement(ComplexContentOutputter.java:417) 
    at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:301) 
    at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:409) 
    at net.sf.saxon.instruct.Instruction.process(Instruction.java:94) 
    at net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:298) 
    at net.sf.saxon.instruct.Template.applyLeavingTail(Template.java:175) 
    at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:343) 
    at net.sf.saxon.Controller.transformDocument(Controller.java:1736) 
    at net.sf.saxon.Controller.transform(Controller.java:1560) 
    at mypackage.v2.business.pdf.XMLtoPDF.convertXMLPDF(XMLtoPDF.java:103) 
    ... 51 more 
java.lang.ClassCastException: java.lang.NoSuchMethodError cannot be cast to java.lang.Exception 

` 나에게 문제가 될 수 있는지 알려 주시기 바랍니다. documentation

Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.

에서 설명한 바와 같이

+0

버전이 일치하지 않습니다. 올바른 jar/라이브러리를 얻으십시오. –

+0

© 생각, 당신은 몇 가지 항아리가 누락되었습니다 – erencan

답변

0

여기에 이런 일이 벌어 질 수있는 방법입니다. foo()이라는 메서드로 라이브러리를 사용하는 코드를 만든다고 가정 해 보겠습니다. 프로젝트를 컴파일 한 다음 나중에 라이브러리를 업그레이드하기로 결정했습니다. 이전 jar 파일을 새 jar 파일로 겹쳐 쓰면됩니다. 코드를 다시 컴파일하지 마십시오.

하지만 새 라이브러리가 foo() 메소드를 제거했는지 몰랐습니다. 이제 코드를 실행하면 컴파일 코드가이 메서드를 호출하고 더 이상 존재하지 않으므로이 예외가 throw됩니다.

특정 경우에는이 문제가 코드 인 코드 일 필요는 없습니다. 다른 라이브러리를 사용하는 라이브러리가 하나 있는데 문제가있을 수 있습니다 (예 : 라이브러리 X는 라이브러리 Y의 버전 2를 사용하지만 클래스 경로에는 라이브러리 Y 버전 1 만 있습니다). 이런 일이 발생하면 라이브러리가 기대하는 버전을 사용하고 있는지 확인해야합니다.

특정 문제가있는 경우 org.apache.xmlgraphics.java2d.GraphicContext이 들어있는 jar 버전을 찾아야하며 ... org/apache/xmlgraphics/java2d/GraphicContext ... 목록을 취하는 생성자가 있어야합니다. 나는 (L...;)V 의미를 잊어 버린다.

+0

빠른 답장을 보내 주셔서 감사합니다. 여기에 실종 된 항아리가 무엇인지 알려주실 수 있습니까? –

+0

내가 아는 것이 어렵다. 내 의견을 도움이 될만한 것으로 업데이트했습니다. –

관련 문제