Skip to main content
Participant
October 17, 2025
Question

ColdFusion 2021 Update 22 causing error Cannot find implementation class coldfusion.tagext.mail.Mail

  • October 17, 2025
  • 1 reply
  • 340 views

Recently we updated our Coldfusion 2021 server to update 22 and are now getting several errors with packages, we followed the instructions from this post  but still haven't been able to make it work.

 

First the mail package wasn't installed, we tried to install it via cfpm and Cf admin without success, later we discovered that there were missing dependencies which we manually uploaded to the repo folder, cleared felix cache, both manually and programatically, deleted cfclasses folder.

 

And finally we were able to install it but still having the same issue also we found out that even though postgresql is installed we get and error saying that the package is not suitable to make the connection and that we should use cfpm to install it,  another error we get is when we use the function Encrypt it gives and error, any advice will help a lot.

 

1 reply

Charlie Arehart
Community Expert
Community Expert
October 17, 2025

Jorge, we will be able to solve your problem. There are either of a couple possible scenarios.

 

1) Someone may suggest you stop cf, delete the cfusion/bin/felix-cache folder, then start again. Others reporting this error (in the title) have found that didn't solve it. But it's worth trying. If it doesn't help, let's proceed. 

 

2) Does your cf instance have access to the internet? When you go the cf admin "package manager" page and click the "check for updates" button, does it respond immediately? If not, you may need to perform what the update technotes call the manual offline update process. 

 

3) So did you do the update via that admin page or from the command line?

 

4) Either way, did you look at the update log (in cfusion/updates, in a folder for this update, in the log file with install in its name)? At the bottom, several lines up, it reports whether it detected package updates and then it attempts to download them. Do you see any error there?

 

5) When cf is started by the update process, it's THEN that Cf attempts to update the packages. Look at the coldfusion-out.log, at the time of that first startup after the update. You should see it first "uninstalling" the packages. Then you will see it starting packages (it never refers to updating or even re-installing the uninstalled ones).

 

The key question is whether you see errors on the attempt to START the packages?

 

6) If you attempted the manual offline update, where did you extract the zip to? And did you then change the neo_updates.xml (or cf admin) to point the packages url at that? Again, see the update technote for more. (Some people take an unfortunate shortcut which can also lead to errors related to packages.)

 

I'll wait to hear your replies before offering more. Perhaps my point 1 could well suffice for you. 

/Charlie (troubleshooter, carehart. org)
JorgeACTAuthor
Participant
October 17, 2025
quote

Jorge, we will be able to solve your problem. There are either of a couple possible scenarios.

 

1) Someone may suggest you stop cf, delete the cfusion/bin/felix-cache folder, then start again. Others reporting this error (in the title) have found that didn't solve it. But it's worth trying. If it doesn't help, let's proceed.

 

We have done this many times over plus we have deleted cfclasses and purge cache from cfpm without success

 

2) Does your cf instance have access to the internet? When you go the cf admin "package manager" page and click the "check for updates" button, does it respond immediately? If not, you may need to perform what the update technotes call the manual offline update process. 

 

We do have a proxy we have but when we go to the admin page the changes aren't saved

 

3) So did you do the update via that admin page or from the command line?

 

Command line

 

4) Either way, did you look at the update log (in cfusion/updates, in a folder for this update, in the log file with install in its name)? At the bottom, several lines up, it reports whether it detected package updates and then it attempts to download them. Do you see any error there?

 

0
Status: SUCCESSFUL

feed (2021.0.22.330451) package and its dependencies have been downloaded successfully.The package and its dependencies have been downloaded successfully. ColdFusion server is currently not running. The package will be installed automatically once server is up.
Status: SUCCESSFUL

Custom Action: com.adobe.ia.action.StartServersAction
Status: SUCCESSFUL

Custom Action: com.adobe.ia.action.UninstallServersListAction
Status: SUCCESSFUL

 

 

Installation: Successful.

1748 Successes
0 Warnings
0 NonFatalErrors
0 FatalErrors

 

 

5) When cf is started by the update process, it's THEN that Cf attempts to update the packages. Look at the coldfusion-out.log, at the time of that first startup after the update. You should see it first "uninstalling" the packages. Then you will see it starting packages (it never refers to updating or even re-installing the uninstalled ones).

 

The key question is whether you see errors on the attempt to START the packages?

 

We were missing some dependencies apparently the bundles repo was missing some libraries so we mannually copied them to the repo from the hotfix packages folder and we were able to install it, we are still having some errors in the coldfusion out log

 

Oct 17, 2025 13:07:04 PM Error [main] - Unable to install felixclassloader package: org.apache.http.client.ClientProtocolException O

Oct 17, 2025 13:34:45 PM Information [main] - com package will not be deployed as it is not installed.
Oct 17, 2025 13:34:45 PM Information [main] - odbc package will not be deployed as it is not installed.

 

And in the coldfusion error log we have these:

 

No suitable driver available for cnx_ComInt. The postgresql package is not installed. You can install the package through the CLI package manager (/sysx/coldfusion2021/cfusion/bin/cfpm.sh) by running the command : install postgresql.
No suitable driver available for cnx_ComInt. {1}
org.postgresql.Driver

 

 

SEVERE: Failed to initialize component [Connector["https-jsse-nio-8443"]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1075)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:522)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:986)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
at com.adobe.coldfusion.launcher.Launcher.run(Launcher.java:1027)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.adobe.coldfusion.bootstrap.Bootstrap.init(Bootstrap.java:114)
at com.adobe.coldfusion.bootstrap.Bootstrap.main(Bootstrap.java:241)
Caused by: java.lang.IllegalArgumentException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:114)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:258)
at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1465)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1478)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:663)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1073)
... 12 more
Caused by: java.io.IOException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector
at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:339)
at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:262)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:112)
... 19 more

 

 

 

6) If you attempted the manual offline update, where did you extract the zip to? And did you then change the neo_updates.xml (or cf admin) to point the packages url at that? Again, see the update technote for more. (Some people take an unfortunate shortcut which can also lead to errors related to packages.)

 

We made a backup of the contents of the bundles folder and then we unzipped the contents of the hotfix to it, we set the packageurl and default one to the bundles folder 

 

I'll wait to hear your replies before offering more. Perhaps my point 1 could well suffice for you. 


By @Charlie Arehart

 

Charlie Arehart
Community Expert
Community Expert
October 17, 2025

To your inability to save the proxy settings, that should certainly work. Do you have trouble changing any other settings? What about even on that page? Can you modify the packages url and does it save?

 

Indeed, your later indication that you point that at the bundles folder is a problem. You should point to the bundlesdependency.json in that folder. 

 

If somehow you can't change the admin, change it in the neo_updates.xml and restart. Then try install or updating one package, either in the admin or using cfpm.

 

If it works, update them all. If it fails, when you say you extracted the zip into the bundles folder after bsckinfuirup, you do mean that you left what was there and added what was in the zip, right? Some people mistakenly RENAME the bundles THEN extract the zip into there. That leads to package update/uninstall errors. 

/Charlie (troubleshooter, carehart. org)