jasper+ireport 的问题: JasperFillManager.fillReport 发布到weblogic后不能执行
在本机(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");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
是不是抛出了NullPointerException?这样的话e.getMessage就是null(记得好像是,家里没环境没试验),
log.info("Exception"+e.getMessage());就出新的异常了
找了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装的有问题,有的没装的阿
应该是异常被屏蔽了,改成这样调试一下(不要第一个catch)
复制代码
}
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异常
捕捉的是java.lang.Exception吗?
没有人回答阿
是那个地方出的问题,但下面加了了catch(){e.printstack()},也没有输出任何e的跟踪。
会不会和系统的字符集有关系,那个AIX系统字符集设置中文有点问题
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, ds);
这行出了异常,而碰巧你又捕捉了它,但是又没有向console输出任何东西的时候,就会这样。
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没有打印出来,也没捕获到异常