2012-05-16 86 views
0
<cfscript> 
filepath = ExpandPath("./1.ppt"); 
fis = CreateObject("java", "java.io.FileInputStream").init(filepath); 
//initialize slideshow object with input stream 
src = createObject("java","org.apache.poi.xslf.usermodel.XMLSlideShow").init(fis); 
fis.close(); 
</cfscript> 

初始化org.apache.poi.xslf.usermodel.XMLSlideShow我不能ColdFusion的初始化org.apache.poi.xslf.usermodel.XMLSlideShow對象。 獲得以下錯誤: 無法找到類的構造函數org.apache.poi.xslf.usermodel.XMLSlideShow接受類型的參數(java.io.FileInputStream中)無法ColdFusion的

請幫

+0

的ColdFusion的版本,並且您使用自定義poi包或捆綁的poi包? – Antony

+0

我正在使用興趣點 - 3.8 –

+0

@prashantgupta - 哪個版本的CF?正如安東尼所提到的,ColdFusion 9附帶了舊版本的POI。該版本沒有構造函數'XMLSlideShow(InputStream)'。你說你正在使用興趣點3.8。你更換了現有的POI罐子嗎?從你的錯誤信息,它聽起來像你沒有,這將解釋你的錯誤。 – Leigh

回答

2

我知道你說您正在使用POI 3.8,但錯誤消息表示您使用的是舊版本。

正如安東尼提到的,ColdFusion 9與舊版本(POI 3.5)捆綁在一起,這就是createObject()的用途。 3.5版本中沒有XMLSlideShow(InputStream)構造函數。因此錯誤信息。

有兩種(2)方法來裝入POI的新版本:

  1. 使用JavaLoader並行運行

  2. 較新的版本中{cf_root}\lib替換現有的POI罐子。然後重新啓動CF服務器。 注:我沒有做過這種個人,所以我不知道這樣做會破壞其他功能

+0

同上這個確切的答案。只是把poi jar放到新版本的某個地方,改變你的classpath是不夠的。 –