2016-11-09 2 views
0

私は支柱2を使用してPDFファイルをダウンロードするが、私はそれを実行すると、それが例外をスローするコードを作成...なぜStrutsは未処理例外を検出しましたか?

Strutsのは、未処理の例外を検出しましたている:

メッセージ:

org.apache.commons.logging.LogFactory 
org/apache/commons/logging/LogFactory 

をファイル:ORG/apacheの/カタリナ/ローダ/ WebappClassLoaderBase.java

行番号:1313ここ

が私のコードですスナップショット...私は例外に直面している...

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/a pache /コモン/ログ/た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) 
+0

[java.lang.ClassNotFoundExceptionの取得:org.apache.commons.logging.LogFactory例外](http://stackoverflow.com/questions/1551697/getting-java-lang-classnotfoundexception-org-apache- commons-logging-logfactory) –

答えて

-1

あなたはコモンズロギングライブラリを持っていますか?

+1

これはコメントでなければなりません。答えではありません。 –

0

このjarファイルをダウンロードしてください。

commons-logging library

、あなたのWebコンテンツにWEB-INF/libにに貼り付けます。

あなたのコモンズロギングライブラリが見つかりません。

希望すると助かります。

関連する問題