【发布时间】:2016-11-09 15:33:42
【问题描述】:
我已经创建了一个代码来使用 struts 2 下载 pdf。但是当我运行它时它会抛出异常...
Struts 检测到一个未处理的异常:
消息:
org.apache.commons.logging.LogFactory
org/apache/commons/logging/LogFactory
文件:org/apache/catalina/loader/WebappClassLoaderBase.java
行号:1,313
这是我的代码快照...我面临异常...
public String execute() throws Exception {
try {
if (submit.equals("pdf")) {
rs = new ReportDAO().getPdf();
jasperPath = ServletActionContext.getServletContext().getRealPath("/Reports");
pdfName = "Studnet Report";
rpt = "studentReport.jrxml";
// I got error at this line....
JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);
HashMap<String, Object> pm = new HashMap<String, Object>();
String logo = jasperPath + "/ws.jpg";
pm.put("logo", logo);
JasperReport jr = JasperCompileManager.compileReport(jasperPath + "/" + rpt);
System.out.println("ok");
JasperPrint jp = JasperFillManager.fillReport(jr, pm, resultSetDataSource);
JasperExportManager.exportReportToPdfFile(jp, jasperPath + pdfName + ".pdf");
fileInputStream = new FileInputStream(new File(jasperPath + pdfName + ".pdf"));
}
} catch (Exception e) {
e.printStackTrace();
}
return "SUCCESS";
}
struts.xml
<result name="SUCCESS" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">fileInputStream</param>
<param name="contentDisposition">attachment;filename="${pdfName}.pdf"</param>
<param name="bufferSize">1024</param>
</result>
例外:
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
net.sf.jasperreports.engine.util.JRLoader.(JRLoader.java:67)
net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94)
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1313)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1164)
net.sf.jasperreports.engine.util.JRLoader.(JRLoader.java:67)
【问题讨论】:
标签: java jasper-reports