I recently start a project where I need to:
- support a ton of legacy CFML code
- take advantage of a really good mostly CFML staff
- add new features
- increase deployment stability
- AND lower operating costs
Sure, why not? Anything else while master rubs the lamp?
The ColdFusion Markup Language (CFML) is one of the early technologies for server side scripting applications. The company behind ColdFusion was finally absorbed into Adobe, which means you have a beautiful but expensive environment full of pay-for-play plugins and server and CPU licensing schemes.
First, escape proprietary solutions and go to open source to reduce cost and increase transparency into what the code was actually doing. When you pay for CPU licenses or even by the installation, you end up paying premium for big hardware to reduce the number of licenses. Free installations would free us up to use lots of cheap and redundant servers or virtualization more cost effectively.
I looked for a CFML stack that would be:
- CFML complient as possible
- Have options for pay for support if needed
- Have a proven production stack. (OS, database, total environment)
- Have a active and helpful community
- Tap into growth technologies instead of being a pet project
- And be a good performer, on par or better than ColdFusion.
I settled on Railo deployed on JBoss. for the following reasons
- It is moving towards full open source by joining JBoss.
- It can be deployed as a simple war in any servlet container
- It supports the widest amount of CFML from what I saw
- It is very fast, as all CFML is compiled down to java bytecode, so it execute about on par as a JSP. In fact, CFML becomes just another JSP alternative under Railo.
Now I needed this project to take just a couple of weeks, so I can’t wait for Railo 3.1 which will work under JBoss 5.0, so this is how I got Railo 3.0.2 to work under JBoss 5.0.0 GA
My environment is Red Hat Enterprise 5 running Open JDK 1.6.
- Download JBoss 5.0.0 GA
- Download the Railo 3.0.2 WAR
- Install JBoss as per their instructions. For my part this was just an unpacking the archive and starting the default server.
I tried to just deploy the railo_3.0.2.001.war in my /server/default/deploy dir, but it was not amused. So I unpacked the war
tar xvf railo_3.0.2.001.war
and had tried to deploy the war as a directory. The errors were coming from library incompatability issues, so went into: railo_3.0.1.war/WEB-INF/lib/ andf removed the following jars
- apache-logging-log4j.jar
- apache-lucene-analyzers.jar
- apache-lucene-snowball.jar
- apache-lucene-spellchecker.jar
- apache-lucene.jar
- apache-poi-tm-extractors.jar
- apache-tomcat-jasper-dummy.jar
- apache-xml-xalan.jar
- apache-xml-xerces.jar
- serializer.jar
- ss_css2.jar
- w3c-dom.jar
- xml-apis.jar
I could now start JBoss without any deployment errors, but I wanted to fix railo to a simpler URL. So I created the file railo_3.0.1.war/WEB-INF/jboss-web.xml
<jboss-web>
<context-root>railo</context-root>
</jboss-web>
So now when I start JBoss, I can go to http://localhost:8080/railo and see my inital setup.
Next time I will tell you how I got JBoss dynamic AOP to codeweave railo classes as they loaded 😉
One Comment Add yours