CFAJAXPROXY Help ACF to Lucee

Hoping someone can help me. We are moving to containerizing all our applications and part of this process is converting from ACF to Lucee. I have an older application (almost 20 years) that has been limping around. It is due to be retired but I have to convert the application until that retirement can be finalized.

I am not sure if my problem is due to the age of the application, but this works fine in ACF 11. Currently I am using lucee/lucee52:latest as my docker image.

This is my ACF code:

<CFAJAXIMPORT SCRIPTSRC="/share/CFIDE/scripts"  CSSSRC="/share/CFIDE/scripts/css">
<CFAJAXPROXY CFC="this.that.myCFC" JSCLASSNAME="myCFC">

Currently in ACF we block to the CFIDE folder, so we moved the scripts with CFJAXIMPORT. However, I am not sure how we will handle Lucee yet but everything is default from the image so I removed CFAJAXIMPORT altogether to lessen the complexity.

My folder structure is this:

* this
* * that
* * * myCFC
* * Application.cfc
* * folder
* * * file-with-cfajaxproxy-tag

I only have some variables being set in the Application.cfc but thought I should mention it is there.

First this I noticed is the component could not be found, but it appears to be doubling the first folder. The error is:

invalid component definition, can’t find component [.this.this.that.myCFC]

If I change my code to:

<CFAJAXPROXY CFC="that.myCFC" JSCLASSNAME="myCFC">

Then the page loads without the error. However, I get 400 Bad Request errors on any JS trying to use the CFC. When I view source I see this:

var _Lucee_myCFC = Lucee.ajaxProxy.init('/that/myCFC.cfc','myCFC');

But that is wrong as far as location.

Here is the JS Console log although I did truncate some to avoid sanitizing a lot of stuff:

JSLoader.cfc?method=get&lib=LuceeAjax:1 
	GET http://sanitize:8080/that/myCFC.cfc?method=myMethod&returnFormat=json&argumentCollection={arguments}&_882084000 400 (Bad Request)
request 
		@ JSLoader.cfc?method=get&lib=LuceeAjax:1
call 
		@ JSLoader.cfc?method=get&lib=LuceeAjax:1
Lucee.ajaxProxy.invokeMethod 
		@ JSLoader.cfc?method=get&lib=LuceeAjax:1
_Lucee_myCFC.myMethod

Uncaught SyntaxError: Unexpected token )
    	at Object.Lucee.Json.JSON.parse (JSLoader.cfc?method=get&lib=LuceeAjax:1)    
	at Object.decode (JSLoader.cfc?method=get&lib=LuceeAjax:1)
	at Object.Lucee.ajaxProxy.invokeMethod (JSLoader.cfc?method=get&lib=LuceeAjax:1)
	at window.(:8080/this/anonymous function)._Lucee_myCFC.myMethod (http://sanitize:8080/this/page-with-cfajaxproxy:23:101)

So the url it is calling is:

http://sanitize:8080/that/myCFC.cfc?method=myMethod&returnFormat=json&argumentCollection={arguments}

Which is not correct as it should be:

http://sanitize:8080/this/that/myCFC.cfc?method=myMethod&returnFormat=json&argumentCollection={arguments}

Although both urls give a 400 Bad Request. If I alter the second to simplify it things work, so the CFC is operational.

http://sanitize:8080/that/myCFC.cfc?method=myMethod

Will return the WSDL/Documentation and

http://sanitize:8080/that/myCFC.cfc?method=myMethod&returnFormat=json&argument1=value

Properly returns the content I expect.

I am not sure if this is something related to the older code or if there is some differences between how ACF and Lucee works. I would appreciate any help getting this to work.

Thanks!

As an update, looks like I was mistakenly using a vendor image rather than lucee/lucee5:latest. Switching to lucee5:latest resolved the issue. Problem is I am not sure if I can use lucee5:latest or need to use the vendor image, so I still need to understand this issue or if there is a work around.

lucee/lucee5:lastest = 5.2.9.31 (working)
vendor image = 5.2.7.62 (not working)

Anyone know for sure if 5.2.7.62 contained a bug on CFAJAXPROXY and whether there was a work around for getting it to work in that version?

Thanks!