I’ve made the demo code from my cfobjective presentation available here:
There are two folders in the zip. One is the eclipse project, the other is the eclipse workspace. You should just be able to import the project into your own workspace, but just in case I’ve given you the workspace I used.
If you just want to look at the code, read no further. If you want to run stuff, you’ll need to tweak some things, and there are some caveats. I made these assumptions:
- the project is at /home/owner/cfobjective/springhibcfdemo
- the coldfusion install is at /home/owner/coldfusion8
- it’s a standard ColdFusion 8 install, NOT multiserver
- you’re running the built-in webserver – not critical, if not you’ll have to set up your own virtual directories
If you search the project for “/home/owner” you’ll find everything that might need to be changed.
Now the caveat:
THE BUILD SCRIPT WILL OVERWRITE YOUR COLDFUSION CONFIGURATION
Don’t be afraid – just don’t run the build script if you’re not cool with that. I’d recommend you run up a throwaway ColdFusion dev install and point the build script at that.
The build script will create virtual directories for the JRun webserver. Have a look at jrun-web.xml for details.
That’s about it. You don’t need a database, all the necessary jar files are included, and the CF built-in webserver should be OK for these purposes.
If you haven’t heard yet, cfobjective (ANZ) was awesome. It was an honor to be included among the speakers. Full credit to Jim, Mark and the rest. Last I saw they were cracking open a well earned bottle of champagne.
I think I scared a few people with my java integration horror stories. It really wasn’t meant to give people nightmares, but I think having a list of gotchas can really help when you hit a wall. To that end, I’ve made my preso available at:
There is an error in this preso, which I haven’t corrected but I’ll tell you about here. I said that classes on the java class path (i.e. coldfusion/runtime/lib) aren’t visible to CreateObject(). That’s not correct in general. It only holds true for specific packages, and really won’t be a concern for your own domain models.
Tom Jordahl talks about this tangentially in this post about Apache CXF. Make sure you check out the comments at the end, and for extra credit have a look at cfmx_bootstrap.jar, which you’ll find in coldfusion8/wwwroot/WEB-INF/lib.
In practice I never instantiate any domain object within ColdFusion, which is why I was a bit fuzzy (well, wrong actually) on this point.