Struts2嵌入式部署FineReport报表开发

来源:互联网 发布:专业软件开发学院 编辑:程序博客网 时间:2024/04/30 15:09

最近在做个固定资产管理系统,有需求是要开发报表功能,公司里一直都在用FineReport,在网上也查了些myeclipse部署FineReprot的方法以及查看FineReprot的官方帮助文档,但按照他们的做法去集成部署,效果并不好,错误很多。

连续排错加摸索整了两天,终于成功了,来分享下:

网上的方法和FineReport的方法我这里就不介绍了,有兴趣的可以去看下。


1.安装FineReport。这一步算是必须的吧,因为要使用FineReport开发报表。


2.拷贝工作。需要将FineReport安装目录下WebReport下部分文件拷贝到项目中去,见图:

左图:FineReport安装目录                                               右图:项目拷贝后目录

将WEB-INF下的文件拷贝到项目的WEB-INF下,将fr-applet-7.0.jar拷贝到项目和WEB-INF同级目录下。

可能有疑问:jar包应该放到lib下,怎么放这里了?经过我多次验证,fr-applet-7.0.jar这个jar包放到lib下会提示   javascriptUnitServer 找不到错误。


注意:在FineReport安装目录的WEB-INF下有个web.xml这个不要拷贝过去,但是需要提取里面的代码放到项目的web.xml中。


需要拷贝的代码如下:

<pre name="code" class="html"><servlet>    <servlet-name>ReportServer</servlet-name>    <servlet-class>com.fr.web.ReportServlet</servlet-class>    <load-on-startup>0</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>ReportServer</servlet-name>    <url-pattern>/ReportServer</url-pattern>  </servlet-mapping>

到此,拷贝工作完成


2.将项目部署到tomcat中,启动tomcat,在地址栏中输入http://项目地址:端口号/项目名/ReportServer?op=fr_platform,正常状态应该能出现FineReport的网页

看到这个页面说明你部署成功,但理想是丰满的,现实是骨感的,当输入上面的地址后,出现的是404错误

说找不到ReportServer对应的action,显然Struts将ReportServer看作是action进行处理了,但ReportServer是个servlet

在网上找了关于Struts2和servlet的共存问题:http://blog.csdn.net/huilangeliuxin/article/details/10495403

利用了这篇博客中的一种方法,即自定义了一个Filter进行拦截,最后成功。


希望能帮到需要的朋友。


0 0
原创粉丝点击