When I upgraded to the CF7 , I immediately noticed that two CFX tags began to throw java.lang.NullPointerException exceptions. Using Eclipse to debug the process, I discovered that two classes used to parse WDDX data were not working correctly.
After browsing the JAR classpaths, I saw that these were in the xml-apis.jar and xercesImpl.jar, respectively. So I took those JARs, and after much experimenting, discovered that if I placed them in the jboss\server\default\lib directory rather than in the WEB-INF\cfusion\lib directory of the application, things were kosher.I still don’t have a good explanation as to why this implementation works, but for now, it works.So if you run into places where CFX tags do not work on CF7, check which classes are being used in your tag and experiment with using older, but solid, libraries in their place.
You can pick and choose which of you web applications will be CFML-based. Let’s say you have two applications in your JBoss instance that are just HTML, and two others that will be ColdFusion applications; each with its own, unique ColdFusion settings. The simplest way to this kind of granular control is to copy the WEB-INF directory from the ColdFusion installation and copy it to each application.
When ColdFusion finishes installing, you’re left with a cfusion.war file (assuming you chose the J2EE/WAR installation type). Simply unzip/unpack that WAR file to a directory on your computer and you’ll have 3 folders -
All you need to do if copy the WEB-INF and CFIDE directories into each application you want to server ColdFusion files. Bear in mind that this will create distinct ColdFusion instances. Each application will have independant settings, databases, debugging properties, etc. You can set up your server so that multiple application can share the same ColdFusion ‘instance’, but that’s a later post.
If you want to develop and test your code without having to append a special port onto your host name – that is, you don’t have another web server acting as a proxy to JBoss – then open up the \jboss\server\default\deploy\jbossweb-tomcat50.sar\server.xml file. Right near the top of the file, you’ll see the port designation set to 8080. Just change that to 80 and restart JBoss.
Back when I first tried to get ColdFusion running on JBoss (I know, I know, it’s not supported, but since when does that stop me*) I tried installing JBoss 3.2.3 on my server and, of course, discovered that nothing worked. I then realized that 3.2.3 was not J2EE compliant, so I went back to the JBoss site and downloaded the 4.0 application server.
Voila! ColdFusion started right up.
*Note: Running on JBoss was a requirement for a project at the time, so I didn’t have a choice