新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Java, J2SE, J2ME, J2EE, 以及Eclipse, NetBeans, JBuilder等Java开发环境,还有JSP, JavaServlet, JavaBean, EJB以及struts, hibernate, spring, webwork2, Java 3D, JOGL等相关技术。
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL计算机技术与应用『 Java/Eclipse 』 → 在Websphere中使用FineReport报表软件[转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5086 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 在Websphere中使用FineReport报表软件[转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     finekuku 美女呀,离线,快来找我吧!
      
      
      等级:大一(高数修炼中)
      文章:15
      积分:105
      门派:XML.ORG.CN
      注册:2010/4/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给finekuku发送一个短消息 把finekuku加入好友 查看finekuku的个人资料 搜索finekuku在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看finekuku的博客楼主
    发贴心情 在Websphere中使用FineReport报表软件[转帖]


    文章转自:http://blog.sina.com.cn/s/blog_44f68c96010008pi.html

    FineReport是一款国产的纯[URL=http://www.finereport.com]Java 报表[/URL]软件,其基本原理是通过ReportServer这样一个Servlet来处理所有的报表请求,并动态的生成基于Web2.0技术的HTML页面。我们在最近一期的项目中采用了FineReport作为[URL=http://www.finereport.com]报表[/URL]引擎,在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上。和[URL=http://www.finereport.com]FineReport[/URL]的老薛在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的代码好好研究研究了。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/6/4 23:53:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Java/Eclipse 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/10 4:58:43

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms