本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[Java报表软件—技术知识]在Websphere中使用FineReport报表软件
FineReport——报表技术领跑者 发表于 2010/6/4 21:53:58

FineReport是一款国产的纯Java报表软件,其基本原理是通过ReportServer这样一个Servlet来处理所有的报表请求,并动态的生成基于Web2.0技术的HTML页面。我们在最近一期的项目中采用了FineReport作为报表引擎,在Tomcat的环境中测试顺利通过。   当我们把项目部署到WebSphere6.0.0.1上时,问题开始频繁出现。由于以前有过在WAS上部署项目的经验,这可能又是IBM的JDK的问题。WAS6.0采用的是IBM的JRE 1.4.2,由于IBM对JRE的重新实现,增加了更多的功能和更加严格的运行时检查,使得在SUN JDK下编译的应用程序,多多少少会出现一些问题。   出现的第一个问题是:sun.io.malformedinputexception异常。Google上找到了一些解决方案: ·         http://www.blogjava.net/mlw2000/archive/2007/03/01/101282.aspx ·         http://blog.csdn.net/CharlesYY/archive/2006/11/10/1377774.aspx 根据SytemErr.log给出的错误信息,问题出在com/web/core/js/common.js上。和FineReport的老薛在QQ上讨论了好久,也初步的认定是common.js的编码问题。事实上,从jar包里面提取出来的common.js文件,的确是DOS编码,而不是IBM JRE要求的UTF-8。把该问题通过UltraEdit改为UTF-8编码,然后更新jar包,问题解决。老薛也决定把所有的文件全部用UTF8重新编码。   问题二:ClassDefNotFound错误。 在WAS的部署中,这是个最常见的问题,也是最让人莫名其妙的问题。明明class就定义在路径中,为什么说找不到?其实,造成这个问题有很多种原因。 1.        ClassLoader加载class的时候出现异常,以后再调用该class的时候就会出现ClassDefNotFound错误; 2.        ClassLoader在CLASS_PATH中找不到class的定义; 3.        要加载的class处于当前ClassLoader的子层次上。按照WAS类加载器的层次式设计,低层的Class可以访问高层的Class,反之不行。 我们顺着这个线索摸下去,很快就发现了问题的所在。第一个错误是因为FineReport在Class中调用某个XWindow的API,由于某种原因调用失败,从而导致后来的ClassDefNotFound错误。第二个错误是由于我把FineReport、Spring等公共类全部都放到公共路径/opt/lib下,并设置成WAS的共享库。由于FineReport在运行时需要调用Application的内部类,从而根据3的原因错误产生了。 于是我和老薛又讨论,得知FineReport中查找类的方法是Class.forName。如果把FineReport放在/WEB-INF/lib下,Class.forName调用的ClassLoader自然可以找到当前上下文中的类。可是当FineReport处在/opt/lib的较高层次的类路径上时,寻找下级的某个类,问题出现了。问题集中在一点上:如何在共享库中找到应用程序中类。 我一直用Spring框架,Spring通过配置文件动态的加载类,这种情况和我们现在遇到的问题完全相同。但Spring是如何解决的呢?看来得深入Spring的代码好好研究研究了。 文章转自:http://blog.sina.com.cn/s/blog_44f68c96010008pi.html

阅读全文(1406) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告

本博客提供详细的java报表软件的制作过程,发布java报表软件的版本更新信息,并适时对国内主流报表软件进行功能比较。


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(357)
Java报表软件—制作笔记(54)
Java报表软件—功能比较(43)
Java报表软件—使用心得(21)
Java报表软件—行业动态(54)
Java报表软件—新闻资讯(48)
Java报表软件—技术知识(49)
Java报表软件—问题解析(2)


In the Bowl

.: 最新日志

如何对报表的参数控件赋值
java报表工具FineReport常见
报表怎么做 FineReport连接池原
报表怎么做FineReport数据连接之
报表模板之报表设计
报表模板之报表设计


.: 最新回复

回复:报表参数
好好学习,
好好学习,天天向上。买双 air jor
回复:理解FineReport缓存系列2
回复:理解FineReport缓存系列2


The Fishkeeper
blog名称:Java报表软件
日志总数:357
评论数量:69
留言数量:0
访问次数:1208073
建立时间:2006年4月16日



Text Me

.: 留言板

签写新留言

需要你的帮助


Other Fish in the Sea

.: 链接

报表开发工具  html5图表java报表开发工具




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.046 second(s), page refreshed 144755347 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号