Maven方式集成BIRT 4.6 Webviewer

平生从未见过如此糟糕的官方maven发布质量,窃以为是公司只想卖商业版本,对应的开源版本BIRT简直就是抱来养的。

为了顺利集成BIRT,采用两步走方式:以eclipse的能运行版本为比较基础,再使用maven方式集成验证。

传统动态web项目方式

使用eclipse官方下载的birt-runtime-4.6.0-20160607.zip中的WebViewerExample示例,使用传统web项目方式,检验birt是否可以正常运行。

结论是不能运行,报错“Invalid signature file digest for Manifest main attributes”,是有几个jar包中的签名有问题,官方发行包太应付了事了,实话说做这事儿的人必须开除(可能老板就是这个意思,好让大家去买他们的商业版本)。

排查如下两个包有问题:org.eclipse.birt.runtime_4.6.0-20160607.jar, org.eclipse.datatools.connectivity.oda_3.5.0.201603142002.jar。

打开包删除两个签名文件:/META-INF/ECLIPSE_.RSA 和/META-INF/ECLIPSE_.SF。

在tomcat 8.5中运行,可以正确访问报表。

在这个项目的基础上,创建maven项目,并使用beyand compare软件快速比较依赖的jar包区别,进行下一步maven集成工作。

maven集成方式

创建maven web项目,使用仓库中的BIRT 4.6,JDK为1.8,tomcat为8.5。

        
            org.eclipse.birt.runtime
            org.eclipse.birt.runtime
            4.6.0-20160607
            
                
                    org.eclipse.birt.runtime
                    org.eclipse.orbit.mongodb
                
            
        
  1. maven依赖中的这个包org.eclipse.birt.runtime-4.6.0-20160607.jar,和runtime示例中对应的包比较,缺失Tidy类,需要使用runtime下载zip包中的对应文件(org.eclipse.birt.runtime_4.6.0-20160607.jar删除签名文件,注意下划线和横线的区别)替换本地maven仓库中的文件。

  2. maven依赖包中的org.eclipse.datatools.connectivity.oda-3.5.0.201603142002.jar,打开这个文件,删除/META-INF/ECLIPSE_.RSA 和/META-INF/ECLIPSE_.SF。

  3. maven仓库中没有BIRT web viewer,使用本地仓库加载,将viewservlets.jar拷贝到GAV对应的本地路径(例如:/Users/kevin/.m2/repository/org/eclipse/birt/viewer/birt.viewer/4.6.0-20160607/birt.viewer-4.6.0-20160607.jar)。

  4. 不停的启动,检查缺失的包:axis-jaxrpc和commons-discovery。

  5. 直到可以正常访问报表。

最后可运行的maven pom文件为


    4.0.0
    net.xprogrammer
    birtmvn
    war
    0.0.1-SNAPSHOT
    birtmvn Maven Webapp
    http://maven.apache.org

    

        
            org.eclipse.birt.runtime
            org.eclipse.birt.runtime
            4.6.0-20160607
            
                
                    org.eclipse.birt.runtime
                    org.eclipse.orbit.mongodb
                
            
        
        
        
        
            org.eclipse.birt.viewer
            birt.viewer
            4.6.0-20160607
        
        
            org.apache.axis
            axis
            1.4
        
        
            org.apache.axis
            axis-jaxrpc
            1.4
        
        
            commons-discovery
            commons-discovery
            0.5
        
        

    
    
        birtmvn
    
    

报表也能正常导出。

2019年10月1日,成都,Kevin。

你可能感兴趣的:(Maven方式集成BIRT 4.6 Webviewer)