We're going to cover installing cfusion, opendb, and railo into a single EAR, for compatibility testing and whatnot.
This is most useful on a system with softlinks (symlinks), so windows users are kinda hosed (yeah yeah, MS has "had them" since 2K-- let's not go there).
You don't *need* the symlinks, but only Railo seems to be able to pick up an initial request to a mapped resource-- the others need at least one physical file first (correct me if I'm wrong, people) -- so you're stuck with multiple copies of your code, otherwise.
Now for the meat: there's not much.
Create an ear for your engines (ex.: cfengines.ear) -- this is an empty folder, for now (yes, with the dot -- on windows systems, you can use a dash too, I reckon -- bleh).
Next create the META-INF folder within the cfengines.ear folder. Case matters.
Then create your application.xml file in the META-INF folder. (Ex.: cfengines.ear/META-INF/application.xml) put something like this into it:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application id="Application_ID">
<display-name>CFEngines</display-name>
<description>CFEngines</description>
<module id="railo">
<web>
<web-uri>railo.war</web-uri>
<context-root>/railo</context-root>
</web>
</module>
<module id="cfusion">
<web>
<web-uri>cfusion.war</web-uri>
<context-root>/cfusion</context-root>
</web>
</module>
<module id="openbd">
<web>
<web-uri>openbd.war</web-uri>
<context-root>/openbd</context-root>
</web>
</module>
</application>
And then, well, start your engines! (as in, start downloading them).
After you've got the ones you need (you're looking for WAR files, obviously), you're going to want to put them in expanded format within your EAR.
We like exploded format so that we can do live editing of CF files. This means you unzip the WAR file (it's just a zip, so you can change the name to railo.war.zip, for instance) into a .war folder in the ear folder.
Ex: cfengines.ear/openbd.war/, cfengines.ear/cfusion.war, etc..
If you're thinking by now that this sounds lot like my "how to install Railo as an EAR", you're pretty observant.
Move the ear into your deploy folder (for jboss, it's {jboss.home}/servers/{server}/deploy, for instance) and start your container. That's it!
Yes, it's really that easy.
This will provide you with http://your.host.here/railo for railo, http://your.host.here/openbd for openbd, and http://your.host.here/cfusion for Adobe CF (admin would be at http://your.host.here/cfusion/CFIDE/administrator/index.cfm, for example -- the index.cfm at the end is important!).
The only down side is that these CF engines ('cept Railo) need the CF files in their WAR directory. At least one file-- after you hit a "real" one, you can take advantage of mappings and whatnot from anywhere on your drive.
If this doesn't seem to make sense, try it out, you'll see what I mean.
I'll cover the Apache URL-rewriting from this point, in another entry.