无法在coldfusion中初始化org.apache.poi.xslf.usermodel.XMLSlideShow

时间:2012-05-16 04:33:38

标签: coldfusion powerpoint apache-poi

<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>

我无法在coldfusion中初始化org.apache.poi.xslf.usermodel.XMLSlideShow对象。 获得以下错误: 无法为接受类型为(java.io.FileInputStream)的参数的org.apache.poi.xslf.usermodel.XMLSlideShow类找到构造函数

请帮忙

1 个答案:

答案 0 :(得分:2)

我知道您说您使用的是POI 3.8,但错误消息显示您使用的是旧版本。

正如Antony所提到的,ColdFusion 9与旧版本(POI 3.5)捆绑在一起,这是createObject()使用的版本。版本3.5中没有XMLSlideShow(InputStream)构造函数。因此错误消息。

有两种方法可以加载更新版本的POI:

  1. 使用JavaLoader并行运行较新版本

  2. 替换 {cf_root}\lib中现有的POI广告资源。然后重启CF服务器。 注意:我个人没有这样做,所以我不知道这样做是否会破坏其他功能