Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2014 (Bloomington, MN) with: Joel Hill and Matt Vickers and Shawn Grigson and Jonathan Rowny and Jonathan Dowdle and Christian Ready and Oscar Arevalo and Jeff McDowell

Using CFApplication Inside Of ColdFusion's Application.cfc

By Ben Nadel on
Tags: ColdFusion

Last week, I gave a Nylon Technology presentation on ColdFusion's Application.cfc component. While giving the presentation, it occurred to me - if Application.cfc is a component just like any other and it really just defines a ColdFusion application, I wonder what would happen if you use ColdFusion's CFApplication tag inside of the Application.cfc. To test this, I set up a very simple Application.cfc:

  • <cfcomponent>
  •  
  • <!--- Define application. --->
  • <cfapplication
  • name="CFApp In AppCFC"
  • />
  •  
  • <!--- Define page settings. --->
  • <cfsetting
  • requesttimeout="5"
  • />
  •  
  •  
  • <!---
  • Set an application variable just to be
  • able to echo something out in our CFDump.
  • --->
  • <cfset APPLICATION.CFAppTest = "Interesting" />
  •  
  • </cfcomponent>

The Application.cfc does not contain anything Application.cfc-related; it acts merely as a container for the CFApplication tag. It then uses a standard CFSetting tag and attempts to set an APPLICATION variable that we would echo in a later CFDump.

Then, in index page, all I am doing is CFDumping out the APPLICATION scope:

  • <cfdump
  • var="#APPLICATION#"
  • label="CFApplication Test"
  • top="10"
  • />

Running this page throws the following ColdFusion error:

5 >= 0

Not one of ColdFusion's most intuitive errors (something similar to what is seen when using CFQueryParam and cached database structures), but since I was testing something very specific, I knew what caused it. Apparently, you cannot use the ColdFusion's old CFApplication inside of its new Application.cfc component.




Reader Comments

I was just wondering the same thing so I tried it out. Moving the code to the OnRequestStart function works just fine.

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.