WireBox 1.7: Element REF is undefined in Builder.cfc

I have a basic little WireBox set up that I am playing with here and I am getting an error that I have never seen before. The error message states:

Element REF is undefined in a CFML structure referenced as part of an expression.

And this is coming from \wirebox\system\ioc\Builder.cfc:223.

In this scenario, in my Binder, I am mapping a single component instance …

var sessionFacadeConfig = { scope = ‘SESSION’ };
map( ‘SessionFacade’ ).to( ‘com.system.ScopeFacade’ ).initArg( argumentCollection = sessionFacadeConfig );

The ScopeFacade component is very basic right now with only a single simple property definition.

/**

  • Scope management facade

  • @output false

  • @accessors true

**/

component {

// ---- property definitions ----

property string scopeName;

// ---- object constructors ----

/**

  • Default constructor

  • @access public

  • @returnType ScopeFacade

  • @output false

  • @scope The name of the ColdFusion scope this facade represents

**/

function init( required string scope ) {

this.setScopeName( arguments.scope );

return this;

}

}

I get no errors when the bean factory is set up in my Application.cfc. However, when I call beanFactory.getBean( ‘SessionFacade’ ), that is when I get the above error.

This all looks very basic and I can’t see what I am missing here. Any ideas?

Thanks,
– Jeff

http://wiki.coldbox.org/wiki/WireBox.cfm

initArg([name],[ref],[dsl],[value],[javaCast]) Used to define a constructor argument for the mapped object.

  • name : The name of the constructor argument. Not used for Java or Webservice construction
  • ref : The mapping reference id this constructor is mapped to. E.G. ref=‘MyFunkyEspresso’
  • dsl : The construction dsl that will be used to construct this constructor argument
  • value : The constant value you can use instead of a dsl or ref for this constructor argument
  • javaCast : If using a java object, you can cast the value of this constructor argument

try initWith()

Aaron,

That did it. That was the one change I had made from the previous code base I was working with … to pass a collection of arguments instead of individual name/value pairs.

Thanks!