平生從未見(jiàn)過(guò)如此糟糕的官方maven發(fā)布質(zhì)量飞傀,竊以為是公司只想賣商業(yè)版本皇型,對(duì)應(yīng)的開(kāi)源版本BIRT簡(jiǎn)直就是抱來(lái)養(yǎng)的。
為了順利集成BIRT砸烦,采用兩步走方式:以eclipse的能運(yùn)行版本為比較基礎(chǔ)弃鸦,再使用maven方式集成驗(yàn)證。
傳統(tǒng)動(dòng)態(tài)web項(xiàng)目方式
使用eclipse官方下載的birt-runtime-4.6.0-20160607.zip中的WebViewerExample示例外冀,使用傳統(tǒng)web項(xiàng)目方式寡键,檢驗(yàn)birt是否可以正常運(yùn)行。
結(jié)論是不能運(yùn)行,報(bào)錯(cuò)“Invalid signature file digest for Manifest main attributes”西轩,是有幾個(gè)jar包中的簽名有問(wèn)題员舵,官方發(fā)行包太應(yīng)付了事了,實(shí)話說(shuō)做這事兒的人必須開(kāi)除(可能老板就是這個(gè)意思藕畔,好讓大家去買他們的商業(yè)版本)马僻。
排查如下兩個(gè)包有問(wèn)題:org.eclipse.birt.runtime_4.6.0-20160607.jar, org.eclipse.datatools.connectivity.oda_3.5.0.201603142002.jar。
打開(kāi)包刪除兩個(gè)簽名文件:/META-INF/ECLIPSE_.RSA 和/META-INF/ECLIPSE_.SF注服。
在tomcat 8.5中運(yùn)行韭邓,可以正確訪問(wèn)報(bào)表。
在這個(gè)項(xiàng)目的基礎(chǔ)上溶弟,創(chuàng)建maven項(xiàng)目女淑,并使用beyand compare軟件快速比較依賴的jar包區(qū)別,進(jìn)行下一步maven集成工作辜御。
maven集成方式
創(chuàng)建maven web項(xiàng)目鸭你,使用倉(cāng)庫(kù)中的BIRT 4.6,JDK為1.8擒权,tomcat為8.5袱巨。
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.6.0-20160607</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.orbit.mongodb</artifactId>
</exclusion>
</exclusions>
</dependency>
maven依賴中的這個(gè)包org.eclipse.birt.runtime-4.6.0-20160607.jar,和runtime示例中對(duì)應(yīng)的包比較碳抄,缺失Tidy類愉老,需要使用runtime下載zip包中的對(duì)應(yīng)文件(org.eclipse.birt.runtime_4.6.0-20160607.jar刪除簽名文件,注意下劃線和橫線的區(qū)別)替換本地maven倉(cāng)庫(kù)中的文件剖效。
maven依賴包中的org.eclipse.datatools.connectivity.oda-3.5.0.201603142002.jar嫉入,打開(kāi)這個(gè)文件,刪除/META-INF/ECLIPSE_.RSA 和/META-INF/ECLIPSE_.SF贱鄙。
maven倉(cāng)庫(kù)中沒(méi)有BIRT web viewer劝贸,使用本地倉(cāng)庫(kù)加載姨谷,將viewservlets.jar拷貝到GAV對(duì)應(yīng)的本地路徑(例如:/Users/kevin/.m2/repository/org/eclipse/birt/viewer/birt.viewer/4.6.0-20160607/birt.viewer-4.6.0-20160607.jar)逗宁。
不停的啟動(dòng),檢查缺失的包:axis-jaxrpc和commons-discovery梦湘。
直到可以正常訪問(wèn)報(bào)表瞎颗。
最后可運(yùn)行的maven pom文件為
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<groupId>net.xprogrammer</groupId>
<artifactId>birtmvn</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>birtmvn Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.6.0-20160607</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.orbit.mongodb</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 整合BIRT需要添加的依賴包 -->
<dependency>
<groupId>org.eclipse.birt.viewer</groupId>
<artifactId>birt.viewer</artifactId>
<version>4.6.0-20160607</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<!-- end 整合BIRT需要添加的依賴包 -->
</dependencies>
<build>
<finalName>birtmvn</finalName>
</build>
</project>
報(bào)表也能正常導(dǎo)出。
2019年10月1日捌议,成都哼拔,Kevin。
2020年4月23日瓣颅,成都倦逐,Kevin。