JBoss and Railo

I recently start a project where I need to:

  1. support a ton of legacy CFML code
  2. take advantage of a really good mostly CFML staff
  3. add new features
  4. increase deployment stability
  5. 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:

  1. CFML complient as possible
  2. Have options for pay for support  if needed
  3. Have a proven production stack. (OS, database, total environment)
  4. Have a active and helpful community
  5. Tap into growth technologies instead of being a pet project
  6. And be a good performer, on par or better than ColdFusion.

I settled on Railo deployed on JBoss. for the following reasons

  1. It is moving towards full open source by joining JBoss.
  2. It  can be deployed as a simple war in any servlet container
  3. It supports the widest amount of CFML from what I saw
  4. 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.

  1. Download JBoss 5.0.0 GA
  2. Download the Railo 3.0.2 WAR
  3. 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

  1. apache-logging-log4j.jar
  2. apache-lucene-analyzers.jar
  3. apache-lucene-snowball.jar
  4. apache-lucene-spellchecker.jar
  5. apache-lucene.jar
  6. apache-poi-tm-extractors.jar
  7. apache-tomcat-jasper-dummy.jar
  8. apache-xml-xalan.jar
  9. apache-xml-xerces.jar
  10. serializer.jar
  11. ss_css2.jar
  12. w3c-dom.jar
  13. 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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s