Interesting. Since I'm using the same code on two different systems and getting 
the same results - is there any way I can see what is loaded in memory 
currently?

-Mike

On Nov 24, 2011, at 7:46 AM, Dawn Hoagland <dawnhoagl...@gmail.com> wrote:

> I've seen this happen when multiple versions of the library are being loaded 
> into memory.  CF/Java SHOULD pick the one loaded with the Javaloader, but 
> doesn't always. I've seen this happen when multiple versions of POI have been 
> dropped in CF's lib folder as well.  When stuff like this happens, I 
> write/test in java only to eliminate issues with POI.
> 
> On Wed, Nov 23, 2011 at 9:35 PM, Mike Staver <sta...@fimble.com> wrote:
> I've always been able to use POI via JavaLoader to read in standard xls files 
> and extract data out of the cells for whatever I want, like storing in a 
> database. Recently, I've had to start coding to handle Office 2007 file 
> formats like xlsx and xlsm. POI 3.5 and higher should be able to do that 
> according to many examples I've found on the internet and in Apache's own 
> documentation. So, I'm currently using ColdFusion 9, JavaLoader 1.0, and POI 
> 3.8b4. For the record, I've also tried POI 3.6 and 3.7 for this test and 
> sample code below. Here is my sample code:
> 
> <cfoutput>
> <cfset var.JLKey = "93345778-4949-4705-1235577891134557" />
> <cfset var.paths = []>
> <cfset var.jarpath = "/Users/mstaver/workspace/Fimble/ExternalCode" /> <!--- 
> location of POI jars --->
> <cfdirectory action="list" name="files" directory="#var.jarpath#" 
> filter="*.jar" recurse="true" />
> 
> <cfloop query="files">
>     <cfset arrayAppend(var.paths, directory & "/" & name) />
> </cfloop>
> 
> <cfif NOT structKeyExists(server, var.JLKey)>
>     <cfset server[var.JLKey] = createObject("component", 
> "component.JavaLoader").init(loadPaths=var.paths, 
> loadColdFusionClassPath=false) />
> </cfif>
> 
> <cfscript>
> fileAndPath = "/Users/mstaver/workspace/Fimble/11g.xlsm";
> inp = createObject("java", "java.io.FileInputStream").init("#fileAndPath#");
> objWorkBook = 
> server[var.JLKey].create("org.apache.poi.xssf.usermodel.XSSFWorkbook").Init(inp);
> </cfscript>
> 
> </cfoutput>
> 
> When I write use this code with one small tweak (HSSF instead of XSSF) and I 
> feed in an xls file, everything works as expected. However, when I use the 
> exact code above and feed it xlsx or xlsm, I get this error:
> 
> Object instantiation exception.
> 
> An exception occurred while instantiating a Java object. The class must not 
> be an interface or an abstract class. Error: ''.   The error occurred in 
> /Users/mstaver/workspace/Fimble/test.cfm: line 18
> Called from /Users/mstaver/workspace/Fimble/Application.cfc: line 97
> Called from /Users/mstaver/workspace/Fimble/test.cfm: line 18
> Called from /Users/mstaver/workspace/Fimble/Application.cfc: line 97
>  16 : fileAndPath = "/Users/mstaver/workspace/Fimble/11g.xlsm";
> 17 : inp = createObject("java", 
> "java.io.FileInputStream").init("#fileAndPath#");
> 18 : objWorkBook = 
> server[var.JLKey].create("org.apache.poi.xssf.usermodel.XSSFWorkbook").Init(inp);
> 
> Further down the error stack, I think this is relevant:
> 
>  Caused by: java.lang.NoClassDefFoundError: Could not initialize class 
> org.apache.poi.openxml4j.opc.internal.unmarshallers.PackagePropertiesUnmarshaller
> 
> I don't know where to go on this one. I've tried the SS method, instead of 
> XSSF - and it works fine, until I feed it an xlsx or xlsm again. I don't get 
> it. I've also tried this on Windows 2003, besides here on my Macbook. Both 
> machines are running CF 9.0.1. I'm getting the impression that I'm missing a 
> class or something. I've followed examples from all over the web, and from 
> the POI docs. Everything works until I feed it Office 2007 format docs...
> 
> ------------------------------------------------------------- 
> To unsubscribe from this list, manage your profile @ 
> http://www.acfug.org?fa=login.edituserform 
> 
> For more info, see http://www.acfug.org/mailinglists 
> Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
> List hosted by FusionLink 
> -------------------------------------------------------------
> 
> 
> 
> -- 
> Dawn
> 

Reply via email to