404 on SES URLs in Lucee that work in CF


#1

I am migrating a site from CF to Lucee and the site has many URLs in this format /page.cfm/param1/value1/param2/value2. Lucee returns a 404 instead of processing the CFM. Any ideas what can be done so it works like CF?


#2

You need to modify your web.xml file to pass requests to page.cfm/* to the CFML Servlet. If it’s not really just page.cfm but many many different pages, then you’re a little out of luck as the J2EE spec doesn’t allow for the double wildcard servlet mappings that Adobe hacked into JRun and their custom Tomcat version.

That said, give it a try on CommandBox. We’ve put some sneaky ninja kung foo magic into CommandBox that mimics the double wildcard path matching that Adobe does. It may do what you need since it will match *.cfm/* which is basically what Adobe did.


#3

Thanks for the quick response! I was doing some more digging last night and found something similar in the Taffy docs http://docs.taffy.io/3.1.0#symlink-idiosyncrasies This will be a big pain because there a lot of pages like this across the site. I may explore IIS Rewriting to address this another way vs adding a bunch of web.xml mappings.


#4

Or just try CommandBox. Pretty sure it will give you that Adobe CF behavior you’re used to.


#5

I gave it a quick test for you. I started up a CommandBox server without any rewrites and hit thie URL:

/tests/runner.cfm/foo/bar

The correct page ran and cgi.path_info was equal to /foo/bar. I believe that’s what you’re looking for.


#6

@brandonp :point_up:Did you see that?


#7

Thanks Brad! I haven’t dug into CommandBox and only require a few rules to handle the rewrite. I’m trying to keep the install and config simple and wondering what else CommandBox would provide me beyond running Lucee on it’s own. How does CommandBox work with FusionReactor in production for monitoring?


#8

Hi @brandonp, CommandBox IS the simplest, fast, easiest, and most portable way to run Lucee or Adobe CF for that matter. Full disclosure, I’m affiliated with the project, but I haven’t installed Lucee or ACF in probably 4 years now and never looked back.

Things CommandBox provides you that the Lucee installer doesn’t:

  • A zero install server with an easy CLI to start/stop/manage
  • Ability to start as many servers as you like at the same time in any folders on your hard drive
  • Ability to start different servers of different versions. Even Adobe and Lucee side by side
  • Automatic handling of ports so there’s no conflicts
  • A Single JSON file for managing all your server configuration in a portable manner
  • Full scriptable control over all your CF Config such as datasources, mail servers, or caches that’s portable between all your devs.
  • Easy transition to Docker containers with the exact same JSON configs
  • Never Download Lucee again (engines are downloaded on the fly)
  • Never install Lucee again (engines are deployed ad-hoc as WAR files anywhere
  • Never update Lucee again (CommandBox can automatically download new server updates as they are released)
  • Built in rewrites, web aliases, basic auth, HTTP/HTTPS/AJP listeners, consolidated logging, so you don’t even need IIS/Apache/Nginx for local dev

How does CommandBox work with FusionReactor in production for monitoring?

It works great. In fact, CommandBox actually makes FR easier to use than any other installation method I’ve seen. All you need is this:

install commandbox-fusionreactor
fr register  XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
server start

And boom, every server you start on that machine will automatically have FusionReactor installed and configured as well as a menu item added to your tray icon for easy access. It literally doesn’t get any easier.

Here’s some docs for you to look at:
https://commandbox.ortusbooks.com/embedded-server

The page on the FusionReactor integration is here:
https://commandbox.ortusbooks.com/embedded-server/fusionreactor