2012-05-16 3 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, который принимает параметры типа (java.io.FileInputStream)не смог инициализировать org.apache.poi.xslf.usermodel.XMLSlideShow в ColdFusion

Пожалуйста, помогите

+0

Какая версия ColdFusion, и вы используете пользовательский пакет пои или комплектный пакет пои? – Antony

+0

Я использую POI - 3.8 –

+0

@prashantgupta - Какая версия CF? Как отметил Антоний, ColdFusion 9 поставляется со старой версией POI. У этой версии нет конструктора 'XMLSlideShow (InputStream)'. Вы сказали, что используете POI 3.8. Вы заменили существующие банки POI? Из вашего сообщения об ошибке звучит так, как будто вы этого не сделали, что объясняет вашу ошибку. – Leigh

ответ

2

Я знаю, что ты сказал вы используете POI 3.8, но в сообщении об ошибке говорится, что вы используете более старую версию.

Как отметил Антоний, ColdFusion 9 поставляется с более старой версией (POI 3.5), которую использует createObject(). В версии 3.5 не было конструктора XMLSlideShow(InputStream). Отсюда сообщение об ошибке.

Есть два (2) способ загрузки новой версии POI:

  1. Используйте JavaLoader для запуска новой версии в параллельном

  2. Replace существующих POI банков в {cf_root}\lib , Затем перезапустите сервер CF. Примечание: Я не сделал это лично, так что я не знаю, если это будет нарушать другие функции

+0

так же на этот точный ответ. Просто помещать пузы для новой версии где-то и изменить свой путь к классам недостаточно. –

Смежные вопросы