免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10106 | 回复: 9
打印 上一主题 下一主题

[WebLogic] jasper+ireport 的问题: JasperFillManager.fillReport 发布到weblogic后不能执行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-07 11:14 |只看该作者 |倒序浏览
在本机(tomcat)测试的时候没问题,发布到aix(weblogic)上后 JasperFillManager.fillReport   没有执行有问题,但也没报异常:
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(infoList);                       
                JasperReport jasperReport=null;
                /*直接将jrxml文件编译成jasper文件*/
                log.info("将jrxml文件编译成jasper文件");
                try
                {
                        log.info("xmlPath = "+xmlPath);
                        jasperReport = (JasperReport)JasperCompileManager.compileReport(xmlPath);
                        log.info("jasperreport = "+jasperReport);
                }
                catch(Exception e)
                {
                        log.info("获取jasper文件出错!"+e);
                        throw new Exception();                               
                }       
                try
                {
                        log.info("1");
                        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, ds);                       
                       
                        log.info("2");

论坛徽章:
0
2 [报告]
发表于 2007-12-07 11:25 |只看该作者

跟踪

2007-12-07 10:44:22 [com.zjft.shepherd.business.report.ReportExport]-[INFO] in fixreportmap
2007-12-07 10:44:22 [com.zjft.shepherd.business.report.ReportExport]-[INFO] ?jrxml?????jasper??
2007-12-07 10:44:22 [com.zjft.shepherd.business.report.ReportExport]-[INFO] xmlPath = /weblogic/home/webapp/shepherd/file/report/w_devbaseinfo.jrxml
2007-12-07 10:44:25 [com.zjft.shepherd.business.report.ReportExport]-[INFO] jasperreport = net.sf.jasperreports.engine.JasperReport@33f433f4
2007-12-07 10:44:25 [com.zjft.shepherd.business.report.ReportExport]-[INFO] 1

后面的2没有打印出来,也没捕获到异常

论坛徽章:
0
3 [报告]
发表于 2007-12-07 12:40 |只看该作者
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, ds);               
这行出了异常,而碰巧你又捕捉了它,但是又没有向console输出任何东西的时候,就会这样。

论坛徽章:
0
4 [报告]
发表于 2007-12-07 21:32 |只看该作者
是那个地方出的问题,但下面加了了catch(){e.printstack()},也没有输出任何e的跟踪。
会不会和系统的字符集有关系,那个AIX系统字符集设置中文有点问题

论坛徽章:
0
5 [报告]
发表于 2007-12-10 09:30 |只看该作者
没有人回答阿

论坛徽章:
0
6 [报告]
发表于 2007-12-10 12:43 |只看该作者
捕捉的是java.lang.Exception吗?

论坛徽章:
0
7 [报告]
发表于 2007-12-10 13:12 |只看该作者
}               
                catch (JRException ex)
                {       
                        //log.info("生成报表文件出错");
                        log.info("JRException ex"+ex.getMessage());
                        ex.printStackTrace();
                       
                }
                catch(Exception e)
                {
                        log.info("Exception e"+e.getMessage());
                        e.printStackTrace();
                       
                }

没有任何输出,无从下手找原因,我把jasperReport设置为null,就能捕捉到null异常

论坛徽章:
0
8 [报告]
发表于 2007-12-10 13:29 |只看该作者
应该是异常被屏蔽了,改成这样调试一下(不要第一个catch)
  1. catch(Exception e)
  2.                 {
  3.                         System.out.println(e);
  4.                         e.printStackTrace();
  5.                 }
复制代码

论坛徽章:
0
9 [报告]
发表于 2007-12-11 18:54 |只看该作者
找了jasperreport源码,加了半天log找到问题出在
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
取字体信息时出错,但是想不通就是捕获不到异常
源码:
public static void initializeGraphEnv() throws JRException
{
        final Log log = LogFactory.getLog(JRVerticalFiller.class);
        if (!isGraphicsEnvironmentInitiliazed)
        {
                try
                {
                               
                                           log.info("initializeGraphEnv: 1");
                               
                           GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
                           log.info("initializeGraphEnv: 3");
                }
                catch(Exception e)
                {       
                        log.info("Exception"+e.getMessage());
                        throw new JRException("Error initializing graphic environment.", e);
                }
                       
                isGraphicsEnvironmentInitiliazed = true;
        }
}

log.info("initializeGraphEnv: 1");执行过了,后面就没有log了,是不aix装的有问题,有的没装的阿

论坛徽章:
0
10 [报告]
发表于 2007-12-11 22:39 |只看该作者
是不是抛出了NullPointerException?这样的话e.getMessage就是null(记得好像是,家里没环境没试验),
log.info("Exception"+e.getMessage());就出新的异常了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP