java制作PDF报表时报异常

locationkey 2010-08-24 02:25:23
今天在做java—pdf报表时出现了一个空指针的异常,他是报在这个地方jasperPrint = JasperFillManager.fillReport(jasperFilename, parameter,con);调用底层方法时出现异常我的3个参数的值都是有的,不知道该怎么解决了,请大家帮我看下
调用层代码
public boolean createpdf(HttpServletRequest request, HttpServletResponse response) {
Connection con = null;
String filename="report1";//request.getParameter("filename");
try{
StringBuffer path=new StringBuffer();
path.append(request.getSession().getServletContext().getRealPath("/"));
path.append("WEB-INF\\classes\\web\\jasper\\");
filename=path+filename;
DBConnection cn=new DBConnection();
con = cn.getconnection();
Users users=null;
List list=this.getHibernateTemplate().find("from Users");
Iterator it=list.iterator();
while (it.hasNext()) {
users = (Users) it.next();

}
HashMap parameter=new HashMap();
parameter.put("id", users.getId());
parameter.put("name", users.getName());
parameter.put("pwd", users.getPwd());
//获取文件流
JasperReportService jrs= new JasperReportService();
ByteArrayOutputStream os=jrs.getOutput(filename, parameter, "pdf", con);
response.setContentType("application/pdf");
response.setContentLength(os.size());
ServletOutputStream out = response.getOutputStream();
os.writeTo(out);
out.flush();
out.close();
con.close();
}catch(Exception ex){
ex.printStackTrace();
}

调用底层jasperreports处理方法
public ByteArrayOutputStream getOutput(String filename, Map parameter,
String filetype,Connection con) {
JasperPrint jasperPrint;
ByteArrayOutputStream os=new ByteArrayOutputStream();

try{
String jasperFilename=filename+".jasper";
File f=new File(jasperFilename);
if(!f.exists())
{
JasperCompileManager.compileReportToFile(filename+".jrxml");
}
jasperPrint = JasperFillManager.fillReport(jasperFilename, parameter,con);

//generates PDF
if(filetype.equalsIgnoreCase("xls")){
JRXlsExporter exporter = new JRXlsExporter ();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, os);
try {
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
}
}else if(filetype.equalsIgnoreCase("pdf")){
JasperExportManager.exportReportToPdfStream(jasperPrint, os);
}
}catch(JRException jrException){
jrException.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}

return os;
}

现在就在执行到调用底层方法的jasperPrint = JasperFillManager.fillReport(jasperFilename, parameter,con);
这段代码时出现空指针异常,请大家帮我看下吧,如果有完整代码的朋友帮我发一份,邮箱jason_83560524@163.com
谢谢大家乐
...全文
65 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧