birt插件 web_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
maven依賴中的這個包org.eclipse.birt.runtime-4.6.0-20160607.jar,和runtime示例中對應的包比較,缺失Tidy類,需要使用runtime下載zip包中的對應文件(org.eclipse.birt.runtime_4.6.0-20160607.jar刪除簽名文件,注意下劃線和橫線的區別)替換本地maven倉庫中的文件。
maven依賴包中的org.eclipse.datatools.connectivity.oda-3.5.0.201603142002.jar,打開這個文件,刪除/META-INF/ECLIPSE_.RSA 和/META-INF/ECLIPSE_.SF。
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)。
不停的啟動,檢查缺失的包:axis-jaxrpc和commons-discovery。
直到可以正常訪問報表。
最后可運行的maven pom文件為
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
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。
2020年4月23日,成都,Kevin。
總結
以上是生活随笔為你收集整理的birt插件 web_Maven方式集成BIRT 4.6 Webviewer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信语音保存教程
- 下一篇: ewebeditor未授权:功能被禁用请