java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument

时间:2015-06-02 17:25:20

标签: grails jasper-reports

关于使用BATIK的许多问题和答案,我很难修复我的错误,我找不到任何可能有用的东西。这个question没有答案。

我的问题是当我在我的应用程序上下载pdf时,会发生错误(我甚至尝试包含jar):

java.lang.ClassNotFoundException: org.apache.batik.dom.svg.SVGOMDocument

在我的碧玉报告中,我有这个:

<image>
    <reportElement x="453" y="117" width="246" height="115"/>
        <imageExpression class="net.sf.jasperreports.engine.JRRenderable"><![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("C:\\Project\\myProject\\web-app\\images\\tomcat.svg"))]]>
        </imageExpression>
</image>

基本上,我的BuildConfig.groovy是这样的:

inherits("global") {
    excludes 'xml-apis', 'xml-apis-ext', 'xercesImpl'
}

和我的依赖项:

compile("org.apache.xmlgraphics:fop:0.94",
        "org.apache.xmlgraphics:batik-transcoder:1.7",
        "org.apache.xmlgraphics:batik-codec:1.7",
        "org.apache.xmlgraphics:batik-awt-util:1.7",
        "org.apache.xmlgraphics:batik-bridge:1.7",
        "org.apache.xmlgraphics:batik-dom:1.7",
        "org.apache.xmlgraphics:batik-gvt:1.7",
        "org.apache.xmlgraphics:batik-svg-dom:1.7",
        "org.apache.xmlgraphics:batik-svggen:1.7",
        "org.apache.xmlgraphics:batik-util:1.7",
        "org.apache.xmlgraphics:batik-xml:1.7",
        "org.apache.xmlgraphics:batik-anim:1.7",
        "org.apache.xmlgraphics:batik-css:1.7",
        "org.apache.xmlgraphics:batik-ext:1.7",
        "org.apache.xmlgraphics:batik-js:1.7",
        "org.apache.xmlgraphics:batik-parser:1.7",
        "org.apache.xmlgraphics:batik-script:1.7",
        "org.apache.xmlgraphics:xmlgraphics-commons:1.2",
        "commons-logging:commons-logging:1.0.4",
        "org.apache.avalon.framework:avalon-framework-api:4.3.1",
        "org.apache.avalon.framework:avalon-framework-impl:4.3.1",
        "xalan:xalan:2.6.0",
        "xml-apis:xml-apis-ext:1.3.04"
){
transitive = false

为什么我无法下载? svg无效?我从wiki获得了this svg。

2 个答案:

答案 0 :(得分:0)

检查你的部署代码是否存在batik-svg-dom-1.7.jar或batik-all-1.7.jar(使用它会大大缩短你的编译配置)。如果缺少,请手动添加,以查看是否可以解决您的问题。如果缺少,则部署配置中缺少某些内容。

答案 1 :(得分:0)

这不是一个好的/坏的答案,也不是一个修复,但它只在grails run-war运行,我不知道为什么,它的确有效。