在页面打印IReport报表,servlet代码抛异常解决不了,求帮忙
提示说:ClassNotFoundException: org.apache.commons.logging.LogFactory,但已经导入了commons.logging包了这是出错的代码行:jasperReport = (JasperReport) JRLoader.loadObject(file.getPath()); 
四月 17, 2012 9:38:57 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [JRServlet] in context with path [/secondweb] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:61)
at JRServlet.doGet(JRServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
附上代码如下:
File file = new File(req.getRealPath("G:\\report.jasper")); 
Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = null; 
JasperReport jasperReport=null;
System.out.println("------------step2222-------------");
try 
{
System.out.println("------------step00-------------");
jasperReport = (JasperReport) JRLoader.loadObject(file.getPath()); 
System.out.println("------------step0000-------------");
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn); 
System.out.println("------------step3333-------------");

catch (Exception e) 
{
// e.printStackTrace(); 
System.out.println(e.getMessage());
}
finally
{
try

conn.close();
}
catch (SQLException e) 
{
e.printStackTrace();
}
}
System.out.println("--------------"+jasperPrint.getPages().size()+"-------------------");
System.out.println("------------step4444-------------");
OutputStream out = resp.getOutputStream(); 
if (jasperPrint != null) 
{
JRHtmlExporter htmlExporter = new JRHtmlExporter();
resp.setContentType("text/html;charset=utf-8"); 
htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
htmlExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out); 

// htmlExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image?image="); 
htmlExporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); 
try 
{
htmlExporter.exportReport(); 

catch (JRException e) 

e.printStackTrace();
}
finally
{
out.close(); 

}
}