Java &引用;SAX2驱动程序类org.apache.crimson.parser.XMLReaderImpl未找到;在Tomcat上的webapp中使用蜡染时

Java &引用;SAX2驱动程序类org.apache.crimson.parser.XMLReaderImpl未找到;在Tomcat上的webapp中使用蜡染时,java,tomcat,svg,classpath,batik,Java,Tomcat,Svg,Classpath,Batik,这可能与类路径问题有关,但我现在真的不确定,因为我在一些机器上没有得到这个错误 堆栈顶部的错误是未找到SAX2驱动程序类org.apache.crimson.parser.XMLReaderImpl。为什么只有在某些环境中才会出现此错误,而在其他环境中则不会?我如何进一步调查和/或修复此问题 环境: Mac或PC上的Jetty==正常 Mac上的Tomcat 5或6==正常 Win XP上的Tomcat 5或6==错误 CentOS上的Tomcat 6==错误 POM中的版本: batik

这可能与类路径问题有关,但我现在真的不确定,因为我在一些机器上没有得到这个错误

堆栈顶部的错误是未找到SAX2驱动程序类org.apache.crimson.parser.XMLReaderImpl。为什么只有在某些环境中才会出现此错误,而在其他环境中则不会?我如何进一步调查和/或修复此问题

环境:

  • Mac或PC上的Jetty==正常
  • Mac上的Tomcat 5或6==正常
  • Win XP上的Tomcat 5或6==错误
  • CentOS上的Tomcat 6==错误
POM中的版本:

  • batik:batik:jar:1.5:compile
  • saxon:saxon:jar:8.7:compile
  • 蜡染:蜡染转码器:jar:1.6-1:compile
    • 蜡染:蜡染桥:jar:1.6-1:compile
    • 蜡染:蜡染gvt:jar:1.6-1:compile
    • batik:batikawt util:jar:1.6-1:compile
    • batik:batik util:jar:1.6-1:compile
    • batik:batikgui util:jar:1.6-1:compile
    • 蜡染:蜡染ext:jar:1.6-1:compile
    • XMLAPI:xmlParserAPIs:jar:2.0.2:compile
    • 蜡染:蜡染脚本:jar:1.6-1:compile
    • batik:batiksvg dom:jar:1.6-1:compile
    • 蜡染:蜡染dom:jar:1.6-1:compile
    • 蜡染:蜡染css:jar:1.6-1:compile
    • batik:batikxml:jar:1.6-1:compile
    • batik:batik解析器:jar:1.6-1:compile
    • fop:fop:jar:0.20.5:编译
    • batik:batik-1.5-fop:jar:0.20-5:compile
    • xmlapi:xmlapi:jar:1.0.b2:compile
    • xalan:xalan:jar:2.4.1:compile
    • xerces:xercesImpl:jar:2.2.1:compile
    • avalon框架:avalon框架:jar:4.0:compile

事实证明,Apache XML图形本身两次为类路径添加了深红色。一次在Apache Batik转码器中,一次在Apache FOP中

由于LIB是按字母顺序在Tomcat中加载的,所以FOP首先包括Crimson,但Batik也做了同样的事情


我从项目POM中排除了FOP,并解决了类路径问题。

谢谢,这非常有用

在Win 7/Tomcat 6上,出现了完全相同的“丢失的深红色”事件。通过添加crimson库使其正常工作,但是性能很差,非常慢。单个图像转码大约需要10-15秒。正如您所描述的,通过删除FOP最终解决了问题,现在它真的很快。我的POM就是这样的:

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-transcoder</artifactId>
        <version>1.6-1</version>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <artifactId>fop</artifactId>
                <groupId>fop</groupId>
            </exclusion>
        </exclusions>
    </dependency>

蜡染
蜡染转码器
1.6-1
编译
fop
fop

这是JDK版本的问题:

  • 一些JDK已经包含了
    crimson
    lib,并且在开发人员机器上运行良好
  • 但有些JDK在用户的机器上没有这个库,并抛出错误
使用以下maven配置:

<dependency>
    <groupId>batik</groupId>
    <artifactId>batik-transcoder</artifactId>
    <version>1.6-1</version>
</dependency>
<dependency>
    <groupId>crimson</groupId>
    <artifactId>crimson</artifactId>
    <version>1.1.3</version>
</dependency>

蜡染
蜡染转码器
1.6-1
深红色的
深红色的
1.1.3

这对于让蜡染插件也能正常工作非常有用。org.codehaus.mojo蜡染maven插件1.0-beta-1蜡染蜡染转码器1.6-1 fop fop Hi,马特。我有这个问题。我已经从/WEB-INF/lib中删除了fop,但仍然得到了错误。你有没有发现其他相关的问题?干杯我没有发现我记得的任何其他相关问题(三年前)。我使用Maven打包我的应用程序,因此在POM中排除fop工件使Maven无法打包该工件。如果仍然出现错误,那么打开WAR并检查该工件,确保重新启动Tomcat服务器。我找到了答案。我没有部署WAR文件,而且
fop
batik fop
avalon
中还包括另外两个JAR。我删除了
fop.jar
,但没有删除
batik fop.jar
。如果试图从/WEB-INF/lib文件夹中删除文件,也要删除
batik fop
jar。