WELCOMEMESSAGE is undefined on ColdFusion server

First time trying to create a ColdBox app. Downloaded CommandBox, ran the create app command and server start. The web page that was opened works fine. Now I’m trying to deploy this sample app to ColdFusion. Is there some special command for this? I assumed not, so just copied the files. I have CF 2021 dev version installed. Copied all files to the cfusion wwwroot site. Tried to browse to index.cfm and I get this error from the index page:
Element WELCOMEMESSAGE is undefined in PRC

Turns out the PRC struct/variable referenced by index.cfm is undefined. Am I doing something wrong?

Howdy Travis!

I’m a little confused by this. You just started a CF site with a new ColdBox app… and you’re trying to deploy it to ColdFusion? Didn’t you just do that?

I would check out the ColdBox docs on Routing. You tried to browse to index.cfm, but that file isn’t meant to be accessed in a standalone request. You may need to configure URL rewrite rules so that URLs like / are translated to index.cfm?path_info=/. Once you have routing properly set up and configured, ColdBox will execute the handler for that request and render a “view” file automatically.

You can see this by looking at the Advanced-Script template, which defines prc.welcomeMessage here: advanced-script/Main.cfc at master · coldbox-templates/advanced-script · GitHub

https://coldbox.ortusbooks.com/the-basics/routing

I have Adobe ColdFusion 2021 developer edition installed locally. When I run CommandBox’s server start, it is not doing anything with Adobe CF 2021 right? It has its own light weight server that it is starting up for the folder where it is being run. This works fine. At some point though, don’t I need to deploy this app to an Adobe ColdFusion server? My assumption is that I just copy the files to the Adobe ColdFusion server’s wwwroot directory. Is that the correct process? The error I’m getting is when the app is run from the Adobe CF 2021 developer edition location (wwwroot). Regarding routing - using the server start method, I don’t need to put any kind of path in. I can just go to the root folder and it loads the index page. Is the “server start” command doing some kind of magic to make routing work? Browsing to the Adobe CF root folder or typing index.cfm both generate the same error. So it looks like it is getting the correct view from /views/main/index.cfm, but perhaps /handlers/main.cfc is somehow not being called. This seems to be where it is setting the PRC object and WELCOMMESSAGE property.

CommandBox can totally start Adobe servers for you-- you just need to ask it! The default server is Lucee Server (open source CFML engine). Throw away your CF “developer server” and just do this:

server start cfengine=adobe@2021

This is all covered in the CommandBox docs:
https://commandbox.ortusbooks.com/embedded-server/multi-engine-support

Now, as far as your ColdBox error I have no clue. For starters, ColdBox didn’t work at all on the very first release of CF 2021.0.0 so you’re quite possibly on that older version and not on update 1 (2021.0.1). But just asking CommandBox to start version 2021 will ensure you get the latest update by automatically. If you still have issues, you’ll need to share more information about any settings you may have changed, how your directories are organized, if you’re trying to use SES URLs, what address is in your browser’s address bar, etc, etc. There is so much information we don’t have at this point.

1 Like

I’m sorry, I don’t think I’m communicating effectively here. I’m new to ColdFusion and have never used ColdBox before. I have downloaded and installed this:
https://www.adobe.com/products/coldfusion/download-trial/try.html

I don’t believe this is the same thing as the Lucee Server that you mention is it? Will it work if I copy the files created using the CommandBox tool to a non-Lucee Server like Adobe CF 2021 (developer edition) for windows?

We already have an enterprise installation of Adobe CF 2021, so we need to use this instead of the Lucee version as far as I know.

My Adobe CF 2021 version is 2021.0.0.323925. Tomcat version 9.0.37.0. Looks like I may not have update 1. I’ll try installing that.

Right, and I’m telling you that’s the “hard way”. The easy way is:

server start cfengine=adobe@2021

Both start up an Adobe ColdFusion server. CommandBox is just much much easier. (plus you can start as many servers as you like in any folder you choose running any version of Adobe or Lucee as you see fit-- all without ever needing to install or download anything)

No, it isn’t. Adobe ColdFusion is a commercial CF engine and Lucee Server is a free open source CF engine. If you were simply running server start in CommandBox, it was starting a Lucee Server. But starting an Adobe server is also super simple. Just run the cfengine=adobe bit to your start command and you’re golden. (You don’t even need to add that every time-- after the first time it will store your cfengine setting in the server.json file and will remember it on all future starts.)

I think your making this more complicated than it is. ColdBox is an MVC framework written in CFML You can run CF code on any CF engine you feel like. For the most part they are compatible (ColdBox certainly works on both) So, there’s no issue between moving application files between two servers. The main point here is you’re wasting time messing with an actual Adobe ColdFusion installation. CommandBox can do that for you automatically with no effort, no downloads, no installs, and cleanup is fast and easy.

Yes, obviously. To be clear, no one here is trying to get you to use Lucee Server. I simply told you that the default server in CommandBox that you had been using if you ran server start with no cfengine parameter would have been Lucee, because that’s what comes bundled out of the box. Everyone here understands you would like that to be Adobe and as I’ve shown you-- you don’t need to do anything other than ask CommandBox and it will start up your Adobe ColdFusion server with no troubles.

Right, so as I stated above, Adobe released 2021.0.0 with several bugs including some that broke ColdBox. No big deal, all you need is the actual latest version of Adobe ColdFusion 2021. And the fast, simplest, easiest way to get that is

server start cfengine=adobe@2021

I installed Update 1 for CF 2021 and all is working now :slight_smile:

I can see what you mean about it being a lot easier to use CommandBox. It is pretty slick. However, I do want to make sure my local dev environment is somewhat similar to my dev/test/QA servers.

Thank you for your help!

2 Likes

I would say that CommandBox defo classifies as ‘somewhat similar’. I’d give it more than that :slight_smile: What CommandBox does is take a WAR version of ColdFusion (from Adobe’s download page) and deploys it on the fly to JBoss Undertow (works like Tomcat). CommandBox also has its own built in web server that can mimic whatever settings/ports/aliases you need. But the core CF engine is exactly the same, it’s just in a dynamically controlled environment. And what’s cool, is more and more people are starting to use CommandBox for their qa/prod servers as well so it’s identical across environments.

3 posts were split to a new topic: Error running ColdBox on ACF 2021/IIS