spreadsheet extension - java.lang.NoClassDefFoundError

600 views
Skip to first unread message

ADK

unread,
Feb 4, 2015, 12:48:19 AM2/4/15
to lu...@googlegroups.com
Has anyone successfully installed a working copy of this extension on a fresh install of Lucee?

https://github.com/teamcfadvance/cfspreadsheet-railo

Using the 'Semi-Automatic "Spoofed Provider" Installation via Railo Admin GUI' from the link above installs the extension in the web context just fine, but running the functions gives a java.lang.NoClassDefFoundError with the message: "railo/loader/engine/CFMLEngineFactory"

Java Stacktrace here:

railo/loader/engine/CFMLEngineFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366):366
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355):355
        at java.security.AccessController.doPrivileged(Native Method):-2
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354):354
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425):425
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358):358
        at lucee.loader.classloader.LuceeClassLoader.loadClass(Unknown Source):-1
        at lucee.loader.classloader.LuceeClassLoader.loadClass(Unknown Source):-1
        at com.compoundtheory.classloader.NetworkClassLoader.loadClass(NetworkClassLoader.java:463):463
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358):358
        at org.cfsearching.poi.XLSXQueryHandler.(XLSXQueryHandler.java:47):47
        at org.cfsearching.poi.WorkbookExportFactory.createQueryExport(WorkbookExportFactory.java:36):36
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method):-2
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57):57
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43):43
        at java.lang.reflect.Method.invoke(Method.java:606):606
        at lucee.runtime.reflection.pairs.MethodInstance.invoke(Unknown Source):-1
        at lucee.runtime.java.JavaObject.call(Unknown Source):-1
        at lucee.runtime.java.JavaObject.call(Unknown Source):-1
        at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(Unknown Source):-1
        at lucee.runtime.PageContextImpl.getFunction(Unknown Source):-1
 
        at
org
.cfpoi.spreadsheet.spreadsheet_cfc$cf.udfCall1(C:\dev\webcontexts\test\components\org\cfpoi\spreadsheet\Spreadsheet.cfc:129):129
 
        at
org
.cfpoi.spreadsheet.spreadsheet_cfc$cf.udfCall(C:\dev\webcontexts\test\components\org\cfpoi\spreadsheet\Spreadsheet.cfc):-1
        at lucee.runtime.type.UDFImpl.implementation(Unknown Source):-1
        at lucee.runtime.type.UDFImpl._call(Unknown Source):-1
        at lucee.runtime.type.UDFImpl.callWithNamedValues(Unknown Source):-1
        at lucee.runtime.ComponentImpl._call(Unknown Source):-1
        at lucee.runtime.ComponentImpl._call(Unknown Source):-1
        at lucee.runtime.ComponentImpl.callWithNamedValues(Unknown Source):-1
        at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(Unknown Source):-1
        at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(Unknown Source):-1
        at spreadsheet_cfc$cf.udfCall(C:\dev\webcontexts\test\library\tag\spreadsheet.cfc:136):136
        at lucee.runtime.type.UDFImpl.implementation(Unknown Source):-1
        at lucee.runtime.type.UDFImpl._call(Unknown Source):-1
        at lucee.runtime.type.UDFImpl.callWithNamedValues(Unknown Source):-1
        at lucee.runtime.ComponentImpl._call(Unknown Source):-1
        at lucee.runtime.ComponentImpl._call(Unknown Source):-1
        at lucee.runtime.ComponentImpl.callWithNamedValues(Unknown Source):-1
        at lucee.runtime.tag.CFTag.cfcStartTag(Unknown Source):-1
        at lucee.runtime.tag.CFTag.doStartTag(Unknown Source):-1
        at index_cfm$cf.call(C:\dev\apps\test\index.cfm:44):44
        at lucee.runtime.PageContextImpl.doInclude(Unknown Source):-1
        at lucee.runtime.PageContextImpl.doInclude(Unknown Source):-1
        at lucee.runtime.listener.ModernAppListener._onRequest(Unknown Source):-1
        at lucee.runtime.listener.MixedAppListener.onRequest(Unknown Source):-1
        at lucee.runtime.PageContextImpl.execute(Unknown Source):-1
        at lucee.runtime.PageContextImpl.execute(Unknown Source):-1
        at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(Unknown Source):-1
        at lucee.loader.servlet.CFMLServlet.service(Unknown Source):-1
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728):728
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305):305
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51):51
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243):243
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222):222
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123):123
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502):502
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171):171
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100):100
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118):118
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408):408
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200):200
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603):603
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310):310
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145):1145
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615):615
 




Michael Offner

unread,
Feb 4, 2015, 3:53:26 AM2/4/15
to lucee
the class "railo/loader/engine/CFMLEngineFactory" simply not exist in Lucee, it is named "lucee/loader/engine/CFMLEngineFactory", so the extension need a small adjustment.

Micha

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lucee/f58fd3e6-534b-458e-9905-35906966133f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

ADK

unread,
Feb 4, 2015, 9:01:09 PM2/4/15
to lu...@googlegroups.com
Thanks Micha.

Searching through all of the files in that extension, I can only seem to find that reference in 2 compiled class files: XLSXQueryHandler.class and XLSToQuery.class. There does not seem to be any java src files in the Github repo though... so I am guess I am not sure what or how to tweak?
...

Michael Offner

unread,
Feb 5, 2015, 2:24:41 AM2/5/15
to lu...@googlegroups.com
Who did the extension? Is there a license defined?

Micha
--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Julian Halliwell

unread,
Feb 5, 2015, 3:52:30 AM2/5/15
to lu...@googlegroups.com
I've got it working on a migrated Lucee server, but only by installing
it manually. The extension installation mechanism didn't work in Railo
4.x either so I'd installed the spreadsheet functionality manually
there too. Here are some instructions - just adjust the path
WEB-INF/railo to WEB-INF/lucee

http://cfsimplicity.com/88/migrating-from-coldfusion-to-railo-part-2-spreadsheets

Can't see any reason why it wouldn't work on a fresh install too.

As mentioned in another thread, I've ditched this extension in favour
of a standalone library I've started building from it. It doesn't
support everything yet, but I plan to make it do so. It has a couple
of extra methods which make generating simple reports from queries
really easy.

https://github.com/cfsimplicity/lucee-spreadsheet

Julian.

ADK

unread,
Feb 5, 2015, 3:56:12 AM2/5/15
to lu...@googlegroups.com
There is not a license that I can find. It looks like it was orignally done by Andy Jarrett and then taken over by TeamCfAdvance:

https://github.com/teamcfadvance/cfspreadsheet-railo

All old links from original repos either 404 or redirect to the new repo linked above
...

ADK

unread,
Feb 5, 2015, 4:02:33 AM2/5/15
to lu...@googlegroups.com
Hi Julian - thx. I had tried that as well and same issue. In a clean Lucee install there is not really ANY mention of "railo" any longer and so it seems that the references to it in the compiled class files in some uf the jars are pointing to a railo path that no longer exists. My guess is that that is why it works on a migrated instance but not a fresh one?

Julian Halliwell

unread,
Feb 5, 2015, 4:09:27 AM2/5/15
to lu...@googlegroups.com
You might be right, Andrew. Could you see if my standalone library on
Github works? It uses exactly the same jars but detached from the
Railo/Lucee context.

https://github.com/cfsimplicity/lucee-spreadsheet

Julian Halliwell

unread,
Feb 5, 2015, 5:18:57 AM2/5/15
to lu...@googlegroups.com
Andrew, I just shut down my migrated instance of Lucee (on my dev
machine), and started up a fresh Lucee Express. A quick test of my
standalone library, placing it in the /webapps/ROOT/, appeared to work
perfectly.

I then stopped the instance, installed the old Railo extension
*manually* into the

/webapps/ROOT/WEB-INF/lucee

context, restarted the express instance and, again it worked fine.

With the Railo-migrated instance completely shut down, surely it can't
be interfering can it?

Perhaps it's only certain functions that are affected? Which ones are
you testing?

Julian.

ADK

unread,
Feb 11, 2015, 3:17:48 AM2/11/15
to lu...@googlegroups.com
Hey Julian... sorry for late response, I was traveling.

So I just did exactly as you say: shutdown my local Tomcat/Lucee, download Lucee Express (4.5.1.000) and manually install EXACTLY as your blog post, start up Lucee and run both a cfspreadsheet tag and a spreadsheetread() cfscript version to read a file and both give me error and show looking for "railo/loader/engine/CFMLEngineFactory"

Looking at the compiled class files, this seems to be hard coded in? (i.e. references to "railo") so I am not sure (a) how you got it to work and (b) how to move forward?

I suppose I could rewrite a lot of code to use an alternative solution (i.e. yours or other's POI utility, etc.) but would really like to just get this extension up an running...

Julian Halliwell

unread,
Feb 11, 2015, 3:37:06 AM2/11/15
to lu...@googlegroups.com
Very odd. Could you test whether this works?

https://github.com/cfsimplicity/lucee-spreadsheet

It uses the exact same jars as the extension.

Julian Halliwell

unread,
Feb 13, 2015, 10:26:31 AM2/13/15
to lu...@googlegroups.com
Andrew, I've been doing some testing and have now been able to
reproduce the error, but only with the "read" method.

The jar with the now incorrect railo reference is the
"poi-export-utility.jar", which is only used when reading spreadsheets
from disk.

I'm working on an alternative way of fulfilling that functionality
which I'll include in my standalone library and if possible as a fork
of the old Railo extension.

Will let you know when I've made more progress.

Cheers
Julian.

On 11 February 2015 at 08:17, ADK <and...@leftbower.com> wrote:

ADK

unread,
Feb 13, 2015, 2:12:59 PM2/13/15
to lu...@googlegroups.com
Julian - yes, "reading" spreadsheets is all I actually need to do. It appears that spreadsheet writing is already part of Lucee core:

https://bitbucket.org/lucee/lucee/src/dc6cad5966335262c49f2a15743acd3e7061ce00/lucee-java/lucee-core/src/lucee/runtime/functions/poi/?at=master

So there appears to be some duplication going on?

Julian Halliwell

unread,
Feb 13, 2015, 3:22:03 PM2/13/15
to lu...@googlegroups.com
Andrew, it seems that Micha intended to implement ACF's spreadsheet
functionality in the core 3 years ago and made a small start:

https://issues.jboss.org/browse/RAILO-1749

But that was abandoned, presumably because it was deemed not
appropriate for the core after all. SpreadsheetNew() does seem to work
without the extension, but I couldn't get SpreadsheetWrite() to do
anything. Clearly not reliable and likely to be removed in 5.0.

I've been working on my standalone library today and have managed to
get "read" functionality partially working in Lucee. Basically it will
read an xls file into a query object, but not CSV or HTML at present.
Also specifying column/row ranges and column names other than the
header row isn't there yet, neither is reading a named sheet (reading
by sheet number is, however).

It needs more work and some tests (on the way), but I do plan to match
as much of the old extension functionality as I can.

I realise though that unlike the extension, it would involve folks
changing application code, so my aim is also to fork the Railo
extension and replace the faulty "read" elements with what I've come
up with.

It would be great if you and others could test the library in Lucee to
iron out any issues before I back-port it to the extension.

https://github.com/cfsimplicity/lucee-spreadsheet

Cheers
Julian.

Michael Vornkahl

unread,
Feb 14, 2015, 6:38:57 AM2/14/15
to lu...@googlegroups.com
Hi Julian,
I would like to test you spreadsheet extension, but I need a little help to install it.
I'm using lucee on a windows server with Apache Tomcat.
Could you please describe how to install it, if I downloaded the file lucre-spreadsheet-master.zip?

Thank you for your help!!!

And by the way: I'm wondering, why there aren't more people requesting the spreadsheet tags. We get very offen excel-sheets from our customers, which must be imported or we have to export data in excel-format.


Greetings

Julian Halliwell

unread,
Feb 14, 2015, 7:04:02 AM2/14/15
to lu...@googlegroups.com
Hi Michael

It's not an extension so you don't need to install it. It works as a
standalone library, so you just need to copy the contents of
lucee-spreadsheet-master inside the zip to a folder where you can call
Spreadsheet.cfc from your code. Could be inside your app, or in a
central location available via an application mapping.

I put some examples of how to call it in the ReadMe. Let me know if
it's not clear enough.

Do read about the limitations - it doesn't do everything that the
extension did yet.

Thanks
Julian

On 14 February 2015 at 11:38, Michael Vornkahl

Michael Vornkahl

unread,
Feb 14, 2015, 8:24:48 AM2/14/15
to lu...@googlegroups.com
Hi Julian,
I got the following error:

Lucee 4.5.1.000 Error (expression)
Message variable [TOOLS] doesn't exist
Stacktrace The Error Occurred in
D:\Inetpub\wwwroot\CPMG\assets\lucee-spreadsheet\Spreadsheet.cfc: line 313

    311: throw( type=exceptionType,message="Attribute not yet supported",detail="Sorry the 'sheetName' attribute is not yet supported." );
    312: //END TODO
    313: var workbook = tools.workbookFromFile( src );
    314: switch( format ){
    315: case "csv": case "tab": case "pipe":

called from D:\Inetpub\wwwroot\CPMG\assets\lucee-spreadsheet\KBV_Export.cfm: line 6
Java Stacktrace variable [TOOLS] doesn't exist
  at lucee.runtime.type.scope.UndefinedImpl.getCollection(Unknown Source):-1
  at cpmg.assets.lucee_spreadsheet270.spreadsheet_cfc$cf.udfCall2(D:\Inetpub\wwwroot\CPMG\assets\lucee-spreadsheet\Spreadsheet.cfc:313):313
  at cpmg.assets.lucee_spreadsheet270.spreadsheet_cfc$cf.udfCall(D:\Inetpub\wwwroot\CPMG\assets\lucee-spreadsheet\Spreadsheet.cfc):-1
  at lucee.runtime.type.UDFImpl.implementation(Unknown Source):-1
  at lucee.runtime.type.UDFImpl._call(Unknown Source):-1
  at lucee.runtime.type.UDFImpl.callWithNamedValues(Unknown Source):-1
  at lucee.runtime.ComponentImpl._call(Unknown Source):-1
  at lucee.runtime.ComponentImpl._call(Unknown Source):-1
  at lucee.runtime.ComponentImpl.callWithNamedValues(Unknown Source):-1
  at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(Unknown Source):-1
  at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(Unknown Source):-1
  at cpmg.assets.lucee_spreadsheet270.kbv_export_cfm$cf.call(D:\Inetpub\wwwroot\CPMG\assets\lucee-spreadsheet\KBV_Export.cfm:6):6
  at lucee.runtime.PageContextImpl.doInclude(Unknown Source):-1
  at lucee.runtime.listener.ClassicAppListener._onRequest(Unknown Source):-1
  at lucee.runtime.listener.MixedAppListener.onRequest(Unknown Source):-1
  at lucee.runtime.PageContextImpl.execute(Unknown Source):-1
  at lucee.runtime.PageContextImpl.execute(Unknown Source):-1
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(Unknown Source):-1
  at lucee.loader.servlet.CFMLServlet.service(Unknown Source):-1
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:728):728
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305):305
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222):222
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123):123
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502):502
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171):171
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99):99
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118):118
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408):408
  at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200):200
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589):589
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310):310
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142):1142
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617):617
  at java.lang.Thread.run(Thread.java:745):745
 
Timestamp 2/14/15 2:23:56 PM CET



<!DOCTYPE HTML>
<html>
<head>
</head>
<cfobject component="Spreadsheet" name="Spreadsheet">
<cfset s = Spreadsheet.read(src="RegulatoryKopf.xls",format="query")>
<body>
<cfoutput query="s">
<cfdump var="s">
</cfoutput>
</body>
</html>

Julian Halliwell

unread,
Feb 14, 2015, 4:40:43 PM2/14/15
to lu...@googlegroups.com
Hi Martin

Firstly, I found a serious bug in my code for the read() function.
Please **download the latest version (v0.0.6)** under "releases" or
the master zip and replace the files you downloaded earlier.

Secondly, I get the same error using <cfobject>. I would strongly
recommend you avoid that tag call the Spreadsheet.cfc as follows.

// test.cfm
<cfscript>
spreadsheet = New Spreadsheet();
spreadsheetFilepath = ExpandPath( "RegulatoryKopf.xls" );
dataAsQuery = spreadsheet.read( src=spreadsheetFilepath,format="query" );
</cfscript>

Or if you must use tags:

<cfset spreadsheet = New Spreadsheet()>
<cfset spreadsheetFilepath = ExpandPath( "RegulatoryKopf.xls" )>
<cfset dataAsQuery = spreadsheet.read( src=spreadsheetFilepath,format="query" )>

<cfdump var="#dataAsQuery#">

This assumes test.cfm, Spreadsheet.cfc and RegulatoryKopf are all in
the same folder. Note you must provide a full path to your Excel file,
not just the file name.

(Also, avoid using <cfdump> within a <cfoutput query="x"> block -
could lead to problems).

Julian.

On 14 February 2015 at 13:24, Michael Vornkahl
<michael.v...@gmail.com> wrote:
> Hi Julian,
> I got the following error:
>
> Lucee 4.5.1.000 Error (expression)
> Message variable [TOOLS] doesn't exist

Julian Halliwell

unread,
Feb 14, 2015, 5:21:49 PM2/14/15
to lu...@googlegroups.com
Sorry, I meant Michael. For the avoidance of confusion.

On 14 February 2015 at 21:40, Julian Halliwell
<julianh...@gmail.com> wrote:
> Hi Martin

Michael Vornkahl

unread,
Feb 15, 2015, 4:31:10 AM2/15/15
to lu...@googlegroups.com
Hi Julian,
;-) don't worry.

Now it works!!!
I could read my file. Thank you for your help and your development. 
Actually lucee only runs on my development servers, but the only missing thing for me are the spreadsheet-functions. 
So I will follow your work and test it so offen I can. If it is ready (for me, I know, for the developer it is never ready ...), I can switch on my production server to lucee.

Thank you again and have a nice sunday!!!

Michael (alias Martin :-) )

Julian Halliwell

unread,
Feb 15, 2015, 5:06:16 AM2/15/15
to lu...@googlegroups.com
Glad to hear it's working, Michael.

The library is neither complete nor stable at the moment so it's
important you test thoroughly. However I've been using it in
production for the limited set of functions I regularly need
(generating reports, mainly) and it's been fine so far.

Please do report any more problems you come across. Probably best to
do so using the Github issue tracker:

https://github.com/cfsimplicity/lucee-spreadsheet/issues

Julian.

On 15 February 2015 at 09:31, Michael Vornkahl

Michael Vornkahl

unread,
Feb 15, 2015, 8:58:30 AM2/15/15
to lu...@googlegroups.com
Ok,
I will report any problems.
Could you give me a hint how I can call the spreadsheet.cfc if it's not in the same directory?
Maybe I'm to tired today, but it won't work in the moment.

Bye

Michael

Julian Halliwell

unread,
Feb 15, 2015, 9:21:20 AM2/15/15
to lu...@googlegroups.com
Best to use an application mapping:

http://stackoverflow.com/questions/12073714/components-mapping-in-railo

On 15 February 2015 at 13:58, Michael Vornkahl

Michael Vornkahl

unread,
Feb 15, 2015, 11:20:48 AM2/15/15
to lu...@googlegroups.com
Thank you!!!!
Next time, I'm in London, I will bring you a nice bottle of wine.

Michael

ADK

unread,
Feb 15, 2015, 8:45:13 PM2/15/15
to lu...@googlegroups.com
Julian,

I was able to get the origonal extension up and running on a fresh install of Lucee. Steps to reproduce:
  1. Download both ExtensionProvider.cfc and cfpoi.zip from this link:
    https://github.com/teamcfadvance/cfspreadsheet-railo
  2. Change all references from "railo" to "lucee" (be sure to make case-sensitive changes)
  3. Install via the 'Semi-Automatic "Spoofed Provider" Installation via Railo Admin GUI' method using the modified file from above and of course use "luceeExtensionProvider" rather than "RailoExtensionProvider"

That's it. It installs perfectly and can run all of the tests from the "cfspreadsheet-examples.zip" as well as all of my applications.

The tricky part is modifying the .class files inside "poi-export-utility.jar" from all instances of the string "railo" to "lucee". These are the class files that need modifying:

WorkbookExport.class (1 instance of "railo")
XLSToQuery.class (21)
XLSXCSVHandler.class (1)
XLSXHandler.class (1)
XLSXQueryHandler.class (21)
XLSXSimpleHTMLHandler.class (1)

Also of note: it appears that the 3 jars that come in the ooxml-lib folder are unnecessary as they are already loaded in Lucee (for the time being anyways):

dom4j-1.6.1.jar
geronimo-stax-api_1.0_spec-1.0.jar
xmlbeans-2.3.0.jar

So I further modified the install to exclude those as well and all is well.

HTH anyone having issues getting this installed ib Lucee.

Julian Halliwell

unread,
Feb 16, 2015, 5:15:31 AM2/16/15
to lu...@googlegroups.com
Good work, Andrew. Didn't know you could change.jar/.class files
without the source (my java knowledge is very limited). How did you do
it?

I just tried with http://sourceforge.net/projects/classeditor but
couldn't get it to save changes consistently: sometimes it would,
sometimes not.

I can see that dom4j and xmlbeans are in the core Lucee lib/ext
folder, but not seeing Geronimo-stax-api? The 4 apache-poi jars are
also there so really the export utility may be the only additional jar
needed - assuming the versions are compatible.

Anyway, would it be possible for your modified install package and
instructions to be hosted somewhere? Perhaps on GitHub if you have an
account?

ADK

unread,
Feb 16, 2015, 1:45:53 PM2/16/15
to lu...@googlegroups.com
I use git (I make my kids do schoolwork with it!) but never before GitHub... give this a go:

https://github.com/Leftbower/cfspreadsheet-lucee

As for the geronimo-stax-api_1.0_spec-1.0.jar, Lucee does have this installed by default: stax-api.jar -- I am uncertain if this is the same/newer/older but I have had no problems running any of the spreadsheet functions or any of the example tests with those 3 jars removed.

However, I imagine as Lucee pulls more out of its core, this will likely change.

As for the class files... couldn't find the java anywhere and all of the old repos seem to be defunct and/or redirect to the teamcfadvance, so modding them was a bit of a hack, but at least it gets them working for now on the new platform.

Andrew

Julian Halliwell

unread,
Feb 16, 2015, 2:43:32 PM2/16/15
to lu...@googlegroups.com
Great. Is it ok to point people to your fork from the Lucee wiki?

Meanwhile I'm pressing on with my standalone library so folks have a
choice of how to do spreadsheets in Lucee. An upcoming release will
fix various bugs, provide a test suite and upgrade to the current
version of POI.

On 16 February 2015 at 18:45, ADK <and...@leftbower.com> wrote:
> give this a go:
>
> https://github.com/Leftbower/cfspreadsheet-lucee
>

ADK

unread,
Feb 16, 2015, 2:51:02 PM2/16/15
to lu...@googlegroups.com
Sure (test it out first though). By the way, I just uploaded the "proper" zip a few seconds ago so if you already downloaded/cloned the first upload it will fail.

Julian Halliwell

unread,
Feb 16, 2015, 3:38:38 PM2/16/15
to lu...@googlegroups.com
Tried it on my Lucee Express and it worked well.

Pointer added to
https://bitbucket.org/lucee/lucee/wiki/Migrate%20from%20Railo (under
Extensions).

Thanks for your efforts, Andrew.

ADK

unread,
Feb 16, 2015, 3:50:10 PM2/16/15
to lu...@googlegroups.com
Excellent - glad to help.

Richard Tugwell

unread,
Feb 22, 2015, 7:57:47 AM2/22/15
to lu...@googlegroups.com
Andrew - thanks from me as well. I use spreadsheet functionality quite heavily so this saved me a lot of hassle
Reply all
Reply to author
Forward
0 new messages