BIRT集成WEB项目。

从项目要用到BIRT工具开始在坛子里泡了好久,从0开始慢慢琢磨现在终于可以把BIRT集成到项目中来运行了,当中的过程还真有点艰难,但这也是每个学习BIRT工具的人都遇到的,现在把中间的些许过程贴出来,希望对初次学习BIRT的人有些帮助。


一、BIRT与工程的集成。
1、从eclipse官网下载birt的运行包(地址:http://www.eclipse.org/birt/),解压缩,先拷贝WebViewerExample\WEB-INF下如下文件到工程的WEB-INF目录下:
jrun.web.xml
server-config.wsdd
viewer.properties
2、将WebViewerExample\WEB-INF\tlds下的birt.tld文件拷贝到工程的\WEB-INF\tlds下。
3、在工程的WEB-INF下建立report-engine的文件夹,在report-engine下新建如下四个文件夹
documents
images
logs
scriptlib
4、将WebViewerExample\ webcontent文件夹拷贝到要集成的WEB应用的根目录下(如果工程的web目录也叫WebContent的话会很奇怪,可以将webcontent改名,改名方法另开贴说明)。
5、在web应用的根目录下建立reportFiles文件夹,用来存放报表文件。


6、将web.xml(web-template)中的如下内容拷贝到工程的web.xml中:


[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <display-name>Eclipse BIRT Report Viewer</display-name>  
  2.   
  3.   
  4. <!-- Default locale setting. 
  5. -->  
  6. <context-param>  
  7. <param-name>BIRT_VIEWER_LOCALE</param-name>  
  8. <param-value>en-US</param-value>  
  9. </context-param>  
  10.   
  11.   
  12. <!--  
  13. Default timezone setting.  
  14. Examples: "Europe/Paris", "GMT+1".  
  15. Defaults to the container's timezone.  
  16. -->  
  17. <context-param>  
  18. <param-name>BIRT_VIEWER_TIMEZONE</param-name>  
  19. <param-value></param-value>  
  20. </context-param>  
  21.   
  22. <!-- 
  23. Report resources directory for preview. Defaults to ${birt home} 
  24. -->  
  25. <context-param>  
  26. <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name>  
  27. <param-value></param-value>  
  28. </context-param>  
  29.   
  30. <!-- 
  31. Temporary document files directory. Defaults to ${birt home}/documents 
  32. -->  
  33. <context-param>  
  34. <param-name>BIRT_VIEWER_DOCUMENT_FOLDER</param-name>  
  35. <param-value></param-value>  
  36. </context-param>  
  37.   
  38.   
  39. <!--  
  40. Flag whether the report resources can only be accessed under the  
  41. working folder. Defaults to true  
  42. -->  
  43. <context-param>  
  44. <param-name>WORKING_FOLDER_ACCESS_ONLY</param-name>  
  45. <param-value>true</param-value>  
  46. </context-param>  
  47.   
  48.   
  49. <!--  
  50. Settings for how to deal with the url report path. e.g. "http://host/repo/test.rptdesign".  
  51.   
  52. Following values are supported:  
  53.   
  54. <all> - All paths.  
  55. <domain> - Only the paths with host matches current domain. Note the comparison is literal, "127.0.0.1" and "localhost" are considered as different hosts.  
  56. <none> - URL paths are not supported.  
  57.   
  58. Defaults to "domain".  
  59. -->  
  60. <context-param>  
  61. <param-name>URL_REPORT_PATH_POLICY</param-name>  
  62. <param-value>domain</param-value>  
  63. </context-param>  
  64.   
  65.   
  66. <!-- 
  67. Temporary image/chart directory. Defaults to ${birt home}/report/images 
  68. -->  
  69. <context-param>  
  70. <param-name>BIRT_VIEWER_IMAGE_DIR</param-name>  
  71. <param-value></param-value>  
  72. </context-param>  
  73.   
  74.   
  75. <!-- Engine log directory. Defaults to ${birt home}/logs -->  
  76. <context-param>  
  77. <param-name>BIRT_VIEWER_LOG_DIR</param-name>  
  78. <param-value></param-value>  
  79. </context-param>  
  80.   
  81.   
  82. <!-- Report engine log level -->  
  83. <context-param>  
  84. <param-name>BIRT_VIEWER_LOG_LEVEL</param-name>  
  85. <param-value>WARNING</param-value>  
  86. </context-param>  
  87.   
  88.   
  89. <!--  
  90. Directory where to store all the birt report script libraries (JARs).  
  91. Defaults to ${birt home}/scriptlib  
  92. -->  
  93. <context-param>  
  94. <param-name>BIRT_VIEWER_SCRIPTLIB_DIR</param-name>  
  95. <param-value></param-value>  
  96. </context-param>  
  97.   
  98. <!-- Resource location directory. Defaults to ${birt home} -->  
  99. <context-param>  
  100. <param-name>BIRT_RESOURCE_PATH</param-name>  
  101. <param-value></param-value>  
  102. </context-param>  
  103.   
  104.   
  105. <!-- Preview report rows limit. An empty value means no limit. -->  
  106. <context-param>  
  107. <param-name>BIRT_VIEWER_MAX_ROWS</param-name>  
  108. <param-value></param-value>  
  109. </context-param>  
  110.   
  111.   
  112. <!--  
  113. Max cube fetch levels limit for report preview (Only used when  
  114. previewing a report design file using the preview pattern)  
  115. -->  
  116. <context-param>  
  117. <param-name>BIRT_VIEWER_MAX_CUBE_ROWLEVELS</param-name>  
  118. <param-value></param-value>  
  119. </context-param>  
  120. <context-param>  
  121. <param-name>BIRT_VIEWER_MAX_CUBE_COLUMNLEVELS</param-name>  
  122. <param-value></param-value>  
  123. </context-param>  
  124.   
  125.   
  126. <!-- Memory size in MB for creating a cube. -->  
  127. <context-param>  
  128. <param-name>BIRT_VIEWER_CUBE_MEMORY_SIZE</param-name>  
  129. <param-value></param-value>  
  130. </context-param>  
  131.   
  132.   
  133. <!-- Defines the BIRT viewer configuration file -->  
  134. <context-param>  
  135. <param-name>BIRT_VIEWER_CONFIG_FILE</param-name>  
  136. <param-value>WEB-INF/viewer.properties</param-value>  
  137. </context-param>  
  138.   
  139.   
  140. <!--  
  141. Flag whether to allow server-side printing. Possible values are "ON"  
  142. and "OFF". Defaults to "ON".  
  143. -->  
  144. <context-param>  
  145. <param-name>BIRT_VIEWER_PRINT_SERVERSIDE</param-name>  
  146. <param-value>ON</param-value>  
  147. </context-param>  
  148.   
  149.   
  150. <!-- 
  151. Flag whether to force browser-optimized HTML output. Defaults to true 
  152. -->  
  153. <context-param>  
  154. <param-name>HTML_ENABLE_AGENTSTYLE_ENGINE</param-name>  
  155. <param-value>true</param-value>  
  156. </context-param>  
  157.   
  158.   
  159. <!-- 
  160. Filename generator class/factory to use for the exported reports. 
  161. -->  
  162. <context-param>  
  163. <param-name>BIRT_FILENAME_GENERATOR_CLASS</param-name>  
  164. <param-value>org.eclipse.birt.report.utility.filename.DefaultFilenameGenerator</param-value>  
  165. </context-param>  
  166.   
  167.   
  168. <!-- 
  169. Viewer Filter used to set the request character encoding to UTF-8. 
  170. -->  
  171. <filter>  
  172. <filter-name>ViewerFilter</filter-name>  
  173. <filter-class>org.eclipse.birt.report.filter.ViewerFilter</filter-class>  
  174. </filter>  
  175. <filter-mapping>  
  176. <filter-name>ViewerFilter</filter-name>  
  177. <servlet-name>ViewerServlet</servlet-name>  
  178. </filter-mapping>  
  179. <filter-mapping>  
  180. <filter-name>ViewerFilter</filter-name>  
  181. <servlet-name>EngineServlet</servlet-name>  
  182. </filter-mapping>  
  183.   
  184. <!-- Viewer Servlet Context Listener -->  
  185. <listener>  
  186. <listener-class>org.eclipse.birt.report.listener.ViewerServletContextListener</listener-class>  
  187. </listener>  
  188.   
  189.   
  190. <!-- Viewer HttpSession Listener -->  
  191. <listener>  
  192. <listener-class>org.eclipse.birt.report.listener.ViewerHttpSessionListener</listener-class>  
  193. </listener>  
  194.   
  195. <!-- Viewer Servlet, Supports SOAP -->  
  196. <servlet>  
  197. <servlet-name>ViewerServlet</servlet-name>  
  198. <servlet-class>org.eclipse.birt.report.servlet.ViewerServlet</servlet-class>  
  199. </servlet>  
  200.   
  201.   
  202. <!-- Engine Servlet -->  
  203. <servlet>  
  204. <servlet-name>EngineServlet</servlet-name>  
  205. <servlet-class>org.eclipse.birt.report.servlet.BirtEngineServlet</servlet-class>  
  206. </servlet>  
  207.   
  208.   
  209. <servlet-mapping>  
  210. <servlet-name>ViewerServlet</servlet-name>  
  211. <url-pattern>/frameset</url-pattern>  
  212. </servlet-mapping>  
  213.   
  214. <servlet-mapping>  
  215. <servlet-name>ViewerServlet</servlet-name>  
  216. <url-pattern>/run</url-pattern>  
  217. </servlet-mapping>  
  218.   
  219. <servlet-mapping>  
  220. <servlet-name>EngineServlet</servlet-name>  
  221. <url-pattern>/preview</url-pattern>  
  222. </servlet-mapping>  
  223.   
  224.   
  225. <servlet-mapping>  
  226. <servlet-name>EngineServlet</servlet-name>  
  227. <url-pattern>/download</url-pattern>  
  228. </servlet-mapping>  
  229.   
  230.   
  231. <servlet-mapping>  
  232. <servlet-name>EngineServlet</servlet-name>  
  233. <url-pattern>/parameter</url-pattern>  
  234. </servlet-mapping>  
  235.   
  236.   
  237. <servlet-mapping>  
  238. <servlet-name>EngineServlet</servlet-name>  
  239. <url-pattern>/document</url-pattern>  
  240. </servlet-mapping>  
  241.   
  242.   
  243. <servlet-mapping>  
  244. <servlet-name>EngineServlet</servlet-name>  
  245. <url-pattern>/output</url-pattern>  
  246. </servlet-mapping>  
  247.   
  248. <servlet-mapping>  
  249. <servlet-name>EngineServlet</servlet-name>  
  250. <url-pattern>/extract</url-pattern>  
  251. </servlet-mapping>  
  252.   
  253.   
  254. <jsp-config>  
  255. <taglib>  
  256. <taglib-uri>/birt.tld</taglib-uri>  
  257. <taglib-location>/WEB-INF/tlds/birt.tld</taglib-location>  
  258. </taglib>  
  259. </jsp-config>  



其中web.xml文件需做如下修改:
a、修改BIRT_VIEWER_WORKING_FOLDER项的值为reportFiles;
b、修改BIRT_VIEWER_DOCUMENT_FOLDER项的值为WEB-INF/report-engine/documents;
c、修改BIRT_VIEWER_IMAGE_DIR项的值为WEB-INF/report-engine/images;
d、修改BIRT_VIEWER_LOG_DIR项的值为WEB-INF/report-engine/logs;
e、修改BIRT_VIEWER_SCRIPTLIB_DIR项的值为WEB-INF/report-engine/scriptlib;

f、如果需调整日志级别可修改BIRT_VIEWER_LOG_LEVEL的值为ALL;
可选的值有:ALL|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|OFF。级别由高到低。

7、拷贝jar包,这一步放最后是因为我对示例工程中的jar包进行了清理。
我用的是最新版的BIRT 4.2.2,从官网下的部署包,论坛里的大部分人的集成方法是将“WebViewerExample\WEB-INF\lib”中的jar包全部拷到工程的lib目录下,说实话,这里的包实在是太多了,4.2.2 runtime下的jar包有86个47.8兆,这么多的jar包全部拷贝到工程下的话造成工程里面有很多冗余的jar包,也造成了工程的庞大,相信中也是很多人在项目中遇到的问题,工程中有很多冗余的jar包,但是有不敢删除。
我用最土的办法将birt集成到项目中的办法就是,先将配置文件配置好,不拷贝jar包到工程,然后每次启动,根据启动日志的错误提示信息找到缺失的类所在的jar包,然后将对应的jar包拷贝到工程中,再次启动,以此类推,知道工程启动和报表展示没有错误为止,得到的运行birt所必须的jar清单如下:


axis.jar
com.ibm.icu_4.4.2.v20110823.jar
com.lowagie.text_2.1.7.v201004222200.jar
commons-cli-1.0.jar
commons-discovery-0.2.jar
jaxrpc.jar
js.jar
org.apache.batik.css_1.6.0.v201011041432.jar
org.apache.batik.util_1.6.0.v201011041432.jar
org.apache.xerces_2.9.0.v201101211617.jar
org.eclipse.birt.runtime_4.2.2.v20130216-1152.jar
org.eclipse.core.runtime_3.8.0.v20120912-155025.jar
org.eclipse.datatools.connectivity.oda.consumer_3.2.5.v201109151100.jar
org.eclipse.datatools.connectivity.oda_3.3.4.v201212070447.jar
org.eclipse.datatools.connectivity_1.2.7.v201302060508.jar
org.eclipse.equinox.common_3.6.100.v20120522-1841.jar
org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar
org.eclipse.osgi_3.8.2.v20130124-134944.jar
org.w3c.css.sac_1.3.0.v200805290154.jar
Tidy.jar
viewservlets.jar


derby.jar


从86个精简到22个,工程下不用到那么多无用的jar包了,其中derby.jar这个包单独拿出来是因为这个包可要可不要,因为这个是示例工程中的数据源,但我们的项目中一般都不需要用到示例工程中的报表数据源,所以我没有拷贝这个jar包。


至此通过如上步骤已经将birt报表集成到我们的项目中来了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值