[coldbox 3.8] Coldbox Routes not working after moving Application to Lucee 4.5.3

We are moving an Application from Railo to a server running Lucee 4.5.3 and are getting very strange behaviour from ColdBox Routes. The same application is working fine on Railo.

For example: http://[addr]/admin/membership.renewals/list … or … http://[addr]/admin:membership.renewals/list give the following error

`
Page /views/list/index.cfm [/var/www/[addr]/views/list/index.cfm] not found

`

Also, something like “[addr]/_events/registration.step1/eventid/3” which on railo passes eventid=3 into the RC is now returning this error:
Page /views/eventid/3.cfm [/var/www/sites.membes.com.au/views/eventid/3.cfm] not found

Been looking into every scenario all day but now luck.

Has anyone experienced this as well?

Any suggestions are greatly appreciated!

Thanks

Jason

Check your Rewrite Rules for the URL. You might just need to copy the Rewrite Rules to the new server.

Hi Agent, thanks for your post. They have been moved across. Everything is identical between the two servers. The only difference being that one is running Railo and the other Lucee.

Is ColdBox not finding the handlers and just trying to default to implicit view dispatch?

I’ve not seen this myself. Can you put in some debugging code to see if the handler is getting run?

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Handlers seem to be running fine when not in a package, but in a package they are not running.

So “/admin:cms/listpages” works fine,

but “/admin:communication.broadcastemail/new” (handler is located at /modules/admin/handlers/communication/broadcastemail.cfc) handler is not running and getting error “Page /views/new/index.cfm [/var/www/sites.membes.com.au/views/new/index.cfm] not found” (looking for view in parent application, not in admin module).

I’ve been looking closely at any difference between source server and new server that might impact on the rewrite rules… only thing I could find different between old and new server is that mod_cfml is installed on the new, but not the old. Going to try a fresh Lucee 4.5 server without mod_cfml and see if that makes a difference.

I’ve just reinstalled a fresh server. The only thing I did different was to not install mod_cfml as part of the Lucee install.

Coldbox Routes are now working fine on the server without mod_cfml installed on Apache.

I guess maybe some conflict there between mod_cfml and Coldbox, or I hadn’t configured Tomcat correclty(?)

I’ve tried with Lucee5. One install with mod_cfml and another without. Same issues. So looks like my coldbox App is not liking mod_cfml… I’m thinking it might be something to do with the below, which was added to mod_cfml in v1.1

If mod_cfml encounters path_info after the file extension, eg. /blog.cfm/id/17, the original request uri in Apache will be modified by stripping off the “/id/17”, and re-adding that value in a new request header called “x-ajp-path-info”. The CFML engines Lucee, Railo, and Open Blue Dragon support this header as a replacement for the regular path_info.

Although if this is the issue, I’m surprised no-one has bumped into it already. Or maybe it’s a coldbox 3.8 / mod_cfml1.1 compatibility issue…

If you dump/abort your cgi scope at the beginning of the request, can you confirm what your cgi.path_into variable looks like? I’m finding that section in the mod cfm ldocs a little confusing.

> mod_cfml makes it possible to use SES URLs with a Tomcat backend, which is normally impossible to do.

I don’t get what it is saying is impossible. SES URLs have been possible in Tomcat for a long time. Perhaps they meant to say SES URLs in a subdirectory?? Even then, it’s possible, it just requires multiple servlet mappings.

The CFML engines Lucee, Railo, and Open Blue Dragon support this header as a replacement for the regular path_info

I’m not sure if that implies that those engines will make the x-ajp-path-info value available as cgi.path_info or if it’s up to the application to specifically check for cgi.x-ajp-path-info.

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Sorry Brad, I’d dropped that server and rebult without mod_cfml… have created another one with to do more testing.

Dumping Path info for a few URL patterns:

/events/ => //events/

/admin:membership/renewals/list => //admin:membership/renewals/list

Here things go wrong… it seems wherever the handler is in a package the path info is not reading the full URL

/admin:membership.renewals/list => /list

/admin/communication.broadcastemail/new => /new