6

I am trying to invoke a component using the new keyword but it is not working.

The following method below works fine:

<cfset test = CreateObject("component", "test-objects.shipping_new").init(bar="Blah", foo="boom")>

But when I try to use the following:

<cfset test = New test-objects.shipping_new(bar="Blah", foo="boom") />

I get the error tag cfset is not closed. The code above is the first line in the file I am trying to invoke it from, unless I am missing something the tag looks closed to me. I am using Lucee 4.5 if that makes a difference.

Yamaha32088
  • 4,125
  • 9
  • 46
  • 97

1 Answers1

9

The problem is the hyphen:

If the folder name or CFC name has hyphen, use the following syntax:

cfObject=new "cfc-path"(constructorParam1,...)

Tim Jasko
  • 1,532
  • 1
  • 8
  • 12
  • 1
    What a pain but that was it! thank you for your help – Yamaha32088 Mar 30 '16 at 16:43
  • It's a bug in ColdFusion, there is zero need for this to be an error. There are several weird inconsistancies in allowed filename characters in CF and lucee. It's about time they fixed these bugs with hyphens, and dots – Dawesi Dec 27 '20 at 00:05