Invalid component definition, can't find component [coldbox.system.remote.ColdboxProxy]

I have successfully set up lucee and nginx, and requests to lucee are proxied through from nginx.
I am trying to set up a coldbox app but ran into an error when I launch it:
invalid component definition, can’t find component [coldbox.system.remote.ColdboxProxy]

There is a mapping to coldbox in Lucee.

Ok, well that’s pretty relevant… could you share / show us the mapping?

Need info:

  • What version of CBORM?
  • What version of ColdBox?
  • What is the mapping?
  • Why is the mapping “in Lucee” and not in your Application.cfc?

To see where the coldbox mapping actually points, please run writeDump( expandPath( "/coldbox" ) ) and paste the result here. That will help us see whether it’s pointing to the correct directory.

Lucee 5.3.9.166
nginx/1.23.2

cborm-1.2.1.00004-201603111015
ColdBox 4.2.0+00002

  • What is the mapping?
    coldbox mapping in Lucee Web Admin (i.e. Archives & Resources > Mappings) :
    Virtual: /coldbox
    Resource: C:\dev\web\intranet\common
    Primary: Resource
    Inspect: Never

  • Why is the mapping “in Lucee” and not in your Application.cfc?
    That’s how I had set it up previously with ACF and had no problem.

Requested dump:
cb-mappings-dump

I’ve added the coldbox mapping in Application.cfc (i.e. this.mappings[‘/coldbox’] = ExpandPath(“/common/coldbox/”);), but now I am getting the following error:

Seems like Lucee doesn’t like this coldbox SES URL even though SES URL mapping is already defined in Lucee:
/index.cfm/security/login

The Lucee web.xml config for cfm and SES URL is (default out of the box upon installation config):

<!-- Mappings for the Lucee servlet -->
    <servlet-mapping>
        <servlet-name>CFMLServlet</servlet-name>
        <url-pattern>*.cfm</url-pattern>
        <url-pattern>*.cfml</url-pattern>
        <url-pattern>*.cfc</url-pattern>
        <!-- Basic SES Mappings -->
        <url-pattern>/index.cfc/*</url-pattern>
        <url-pattern>/index.cfm/*</url-pattern>
        <url-pattern>/index.cfml/*</url-pattern>
    </servlet-mapping>

WOW, ok this is interesting. Those CBORM and ColdBox versions are like 4 years old. You say you are trying to set up a new ColdBox app? Did you copy some old project or old documentation?

I would start over in a new directory:

  • Make sure you have a recent version of Command box
  • Run box ColdBox create app
  • Copy over any code or assets from the old setup.
  • Be careful not to copy any configuration changes you made without checking the docs to make sure they are still valid configuration.

When you’re done, you should be running ColdBox 6.8 and CBORM 3.8. These will be much faster and offer many, many more features… plus it’s a lot easier to support more recent versions of ColdBox and CBORM.

Oh, lastly… if you created this app based on an old ColdBox skeleton app, or documentation… could you paste a link here so we can make sure that gets updated.

I’m experimenting with trying to migrate/port an existing ColdBox app on a Win/IIS & ACF environment to Lucee/Tomcat with nginx.
It’s not based on any example ColdBox skeleton app. I build it from scatch and added the security module (i.e., solitary). So, I can’t provide any URL.

I think the issue is with the underlying Tomcat used by Lucee that isn’t interpreting SES URL properly when the app is stored in a subdirectory.

I have upgraded to the following while keeping the existing app code base:

  • coldbox 6.8
  • cborm 3.8
  • cbsecurity 2.15

In ColdBox.cfc I have the following interceptor:

interceptors = [
  {class="cbsecurity.interceptors.Security",
       properties={
             rulesSource = "xml",
             rulesFile = "config/securityRules.xml.cfm",
             validatorModel="SecurityService"
         }            
     }  
]

However, I am now getting this error (although the cbsecurity folder is inside the modules folder is there, and both are subfolders of myapp folder):