Java CFX Tag ClassNotFound

Can someone please point me in the right direction with Java CFX tags on v5.2.1.9.

  1. Implemented com.allaire.cfx.CustomTab in my project.cfx.TestInfo class.
  2. Compile and added the class to the WEB-INF/classes.
  3. Restarted Lucee.
  4. Under Lucee Admin when adding TestInfo and project.cfx.TestInfo to the CFX Tag settings:

cannot load class through its string name, because no definition for the class with the specified name [project.cfx.TestInfo] could be found caused by (java.lang.ClassNotFoundException:project.cfx.TestInfo;java.lang.ClassNotFoundException:project.cfx.TestInfo not found by lucee.core [64]:wink:

Am I adding this to the wrong directory?
Does this need to be in a jar?
I’ve referenced numerous sites to try to resolve this issue with no luck.

Thanks in advance.

Yes, put it in a jar and then somewhere in the classpath

I’m sorry but you will have to be a little more precise.
So far I’ve tried to include the jar in
{lucee-config}/lib/
{lucee-config}/bin/
{lucee-config}/cfclasses/
{lucee-config}/customtags/
{lucee-config}/classes/
{lucee-config}/extensions/
{lucee-config}/context/

all with the exact same outcome.

As far as any help, the HelloWorld CFX example was all I found, but this is bundled with the core code so that’s useless for an example.

Lastly, all the documentation I found related was regarding Adobe!!
https://helpx.adobe.com/coldfusion/developing-applications/building-blocks-of-coldfusion-applications/building-custom-cfxapi-tags/writing-a-java-cfx-tag.html

Adding the jar to the lucee/tomcat/lib works but now I have lost the application specific design… I have still not found a way to add the CFX code to the context (application level) of Lucee and have this work like example.HelloWorld CFX!

Anyone know of a buried JVM or Tomcat setting I’m missing to give the class loader the ability to use CFX tags at the context level??

Can you explain in more detail what you mean? Perhaps with some code sample…

If you are familiar with the CFX HelloWorld example, then you know the code is in C:\lucee\lib\lucee-x.x.x.jar.  Furthermore, in the package lucee.cfx.example.HelloWorld!  

Here's my code:
package project.cfx
public final class TestInfo implements CustomTag {
@Override
public void processRequest(final Request request, final Response response) throws Exception {
//code code code...
}

I modified {lucee-web}\lucee-web.xml.cfm to include:

<ext-tags>
    <ext-tag class="lucee.cfx.example.HelloWorld" name="HelloWorld" type="java"/>
    <ext-tag class="project.cfx.TestInfo" name="TestInfo" type="java"/>
</ext-tags>

On a CFM test page I called the tag:
<cfx_testinfo>

I’ve placed the jar containing the compiled Java code in every directory as I stated in the previous post with no luck. The ONLY two locations I found that I can avoid a ClassNotFoundException is in C:\lucee\lib\ and C:\lucee\tomcat\lib. Any where in the {lucee-web} level the JVM can’t find the TestInfo class.

This removes application specific design. If you’re running multiple applications they all can access code <cfx_testinfo> tag where if it worked like custom tags, it was be sandboxed per application level, or {lucee-web}.

You can add the directory to your classpath.

For example, in Tomcat that would be in conf/catalina.properties. You add your path to common.loader.