Damon Cooper's BLOG
Viewing By Entry / Main
February 28, 2007
Forget RoR...Java developers should look at ColdFusion...

Great little article by Kola Oyedeji, on the "Java.net" web site, as Ben pointed out.

The article begins with,

"Forget Ruby on Rails; in this article I outline why, as a Java developer, you should be perhaps be looking to another technology closer to home to leverage your existing in-house skills and infrastructure..."

I couldn't agree more, especially with what's in the ColdFusion Scorpio release coming later this year!



I totally agree! I have also thought of CF (for the most part) is to java as RoR is to Ruby.

A week ago I would have agreed. But having tried to deploy ColdFusion on a 64bit linux box (with 32bit JVM, as required by CF) over the last week, I can say that, if nothing else, getting Ruby to a functional state is *significantly* easier. I'm about to give up on CF. Outside of paying for official support, I haven't been able to find anyone who's been able to help troubleshoot.

Hey Hans, CF isn't supported on 64-bit JVM/OS combos in version 7.

What is your config for future reference, what is your hardware/64-bit chipset, 64-bit OS, 64-bit JDK, 64-bit web server and 64-bit app server?


This technote seems to imply support for 64bit hardware/OS when running a supported 32bit JVM. http://www.adobe.com/go/8be22ed6

I've been trying to deploy on a Xeon 5000 series box running CentOS 4.4 (x86_64) and Sun JDK 1.4.2_11 (i586).

Largest blocking issue is tons of notices in the Apache error logs suggesting a permissions issue with jrunserver.store. (I've tried chmod 777 and chcon --reference=/usr/sbin/httpd). The actual error is:

[notice] jrApache[#####: #####] could not open "/opt/coldfusionmx7/runtime/lib/wsconfig/1/jrunserver. store": Permission denied

I'm considering putting CF in a Xen 32bit HVM domain to see if that works.

FYI, the permission denied error was due to SELinux (the httpd_t domain needs write permission, which it wasn't getting from httpd_exec_t). I'm much closer to a working system, even if not officially supported. :)

Thanks for this article, I'm spreading the word within the org I'm in. Much appreciated, Mark

(..in my experiences, when you let Damon, Ben, et al know about something you're trying to do that CF can't yet do, they do their best to find a way to get reasonable requests through. Best support of any software product I've ever used, and the capability keeps on growing. my two cents)

Thanks for the kind words, Mark. We do try. :)


Just in case someone in Java-land didn't know this as well, CF will package the required runtime libs in the EAR/WAR now for you, as of CF 7.0. Just package, deploy, and go!

You do need a CF runtime license for each server machine a CF app runs on (asked for in the J2EE EAR/WAR packaging tool), but we have to make money somehow, right, since the Devlopment and packaging of the app is free with Developer Edition).

That's all here is to it. And CF can pre-compile your CFML into Java byte code in the packaging process as well, so you're not deliivering source code if you don't want to. You can also code to the Admin API and (on first-time up, for example), prompt for the DSN info to configure your app on the fly in it's new home, wherever it's deployed.

So, just write, package, deploy and go!

(And shhhhh...you don't have to tell anyone it's written in CFML...it's just a smokin' fast, all Java app that runs on any app server as far as they're concerned)



> What is your config for future reference

For future reference, official support for Debian 3.1/Ubuntu 6.06 and later (x86 & AMD64) would be excellent. I use RHEL/CentOS for ColdFusion today because they are supported, but prefer Ubuntu's "no open ports by default" approach to security over RHEL's approach of including all sorts of garbage in a so-called "minimal" install. Ubuntu seems to be much more popular for development machines as well.

Another "feature" that would make ColdFusion more Linux friendly... offer rpm/deb packages rather than (or at least in addition to) the bin installer, preferably with an adobe.com yum/apt-get repository than can be used to check for updates. (installs as dev/trial edition, which can be upgraded via CF admin after install).

Finally, though I recognize the challenge in limiting to a single instance, it would be very nice to be able to install the Standard Edition on an alterate servlet server (e.g. Tomcat/JBoss) rather than forcing integrated JRun. (Maybe use code similar to Photoshop's LM service to make sure only one instance of each serial number is running on the Subnet?)

I may oppose to rpm or deb package. There are other many Linux, BSD, and UNIX systems that don't support these package types. There should be some kind of installer that can support many systems. Please try to keep in mind that Linux isn't only popular unix-like system out there.