2012-06-05 13 views
3

我試圖使用primefaces 3.2的數據導出器控件。以下是代碼:p:dataExporter拋出java.lang.NoClassDefFoundError:com/lowagie/text/phrase

<p:commandLink value="export" ajax="false"> 
     <p:dataExporter type="xls" target="dtable" fileName="myfile" /> 
    </p:commandLink> 
<p:datatable id="dtable" ........../> 

當我點擊導出鏈接,我得到以下錯誤:

java.lang.NoClassDefFoundError: com/lowagie/text/phrase 

我下載了一個iText Jar 5.2.1和我的應用程序包括它,還是我得到的同樣的錯誤。 我該如何解決它?

+0

這個問題很奇怪。 iText用於導出PDF文件,但您實際上正試圖導出XLS文件。嘗試在提供相關代碼片段時更加小心。 – BalusC

+0

以及我試圖導出PDF格式,但仍然相同 – z22

+0

數據導出器不適合我。我正在使用選項卡視圖我在一個選項卡中將值提交給數據庫並查看其他選項卡上的值。我想以excel的形式下載它。我無法做到這一點。爲這個小問題掙扎了兩天。 –

回答

16

嘗試iText 2.1.7不是5.2.1。 http://olex.openlogic.com/packages/itext/2.1.7

我認爲存在許可衝突。所以primefaces使用2.1.7

對於Excel導出,您需要Apache POI。 嘗試3.7:http://archive.apache.org/dist/poi/release/bin/

編輯

(你只需要poi-3.7*.jarpoi-ooxml-3.7*.jar

+0

我應該下載源代碼還是二進制文件? – z22

+1

使用二進制並嘗試。 – veote

+0

它只適用於pdf,不適用於excel :(我應該爲xls做什麼? – z22

0

轉到NetBeans中,你的項目的依賴增加一個新的依賴。鍵入查詢類型iText 2.1.7,然後選擇com.lowagie:itext。你應該可以用dpf 下載:D

-2

我遇到了同樣的問題,但是當我下載這個罐子時,它不起作用。 然後我注意到我正在使用<p:commandLink>,正確的是使用<h:commandLink>由於某種原因<p:commandLink>將無法​​正常工作。

不要使用:

<p:commandLink > <p:graphicImage value="images/excel.png" width="48"/> <p:dataExporter type="xls" target="table" fileName="tablexls" encoding="UTF-8" /> </p:commandLink>

改用:

<h:commandLink > <p:graphicImage value="images/custom/excel.png" width="48"/> <p:dataExporter type="xls" target="table" fileName="tablexls" encoding="UTF-8" /> </h:commandLink>

+0

這個答案缺少一些單詞,我想。 – msanford

+0

找到'h:commandLink'和' p:commandLink!!這很可能是它不能正常工作的原因** ....如果你看問題中的commandLink(哪一個可以工作),你已經可以看到區別了,但是我嚴重懷疑只是改變h:爲p:commandLink解決了classNotFound錯誤...因此,所有的答案完全是**不適用於這個問題... – Kukeltje

+0

這就是爲什麼不爲我工作的原因。我發佈了這個答案,因爲我在這裏嘗試了最好的答案,它仍然沒有奏效,它只在我更改了commandLinks時才起作用。這就是爲什麼我的答案適用於這個問題,因爲他使用''並且在我嘗試了最好的答案之後,我仍然遇到了這個問題,並用我的答案進行了更正。 –

-1

只需添加以下依賴

<dependency> 
     <groupId>com.lowagie</groupId> 
     <artifactId>itext</artifactId> 
     <version>2.1.7</version> 
    </dependency> 
相關問題