dougcain
04/24/2025, 4:56 PMjclausen
04/24/2025, 5:05 PMbdw429s
04/24/2025, 5:26 PMTagLibraryInfo
.bdw429s
04/24/2025, 5:26 PMbdw429s
04/24/2025, 5:27 PMbdw429s
04/24/2025, 5:28 PMbdw429s
04/24/2025, 5:28 PMbdw429s
04/24/2025, 5:29 PMbdw429s
04/24/2025, 5:29 PMjavax.servlet.jsp.tagext.TagLibraryInfo
bdw429s
04/24/2025, 5:29 PMjclausen
04/24/2025, 5:30 PMcfcompile.sh
is looking for the Jakarta class? https://jakarta.ee/specifications/platform/9/apidocs/jakarta/servlet/jsp/tagext/taglibraryinfojclausen
04/24/2025, 5:30 PMbdw429s
04/24/2025, 5:31 PMcompile group: 'jakarta.servlet.jsp', name: 'jakarta.servlet.jsp-api', version: '3.1.1'
bdw429s
04/24/2025, 5:32 PMbdw429s
04/24/2025, 5:33 PMjakarta.servlet.jsp.tagext.TagLibraryInfo
now, and you'd be using Runwar 6.xbdw429s
04/24/2025, 5:38 PMgit diff eb13d48 0ed9713
in the dependencies.gradle
filejclausen
04/24/2025, 5:38 PMcfcompile.sh
script for ACF2025 you can see there is a commented out line for J2EE examples, and the log also echos out this:
echo "Note: For EAR/WAR JEE deployments, you will need to modify cfcompile script to set the variable J2EEJAR to your application server's jar file paths (servlet/jsp/el api)."
echo "If you don't set, it you will get NoClassDefFoundError."
jclausen
04/24/2025, 5:39 PMbdw429s
04/24/2025, 5:39 PMbdw429s
04/24/2025, 5:39 PMjclausen
04/24/2025, 5:40 PMI’m using cfcompile.sh which seems to want TagLibraryInfo but since 3.12.0 it fails as the class isn’t found
bdw429s
04/24/2025, 5:40 PMbdw429s
04/24/2025, 5:40 PMbdw429s
04/24/2025, 5:40 PMbdw429s
04/24/2025, 5:41 PMjclausen
04/24/2025, 5:42 PMjclausen
04/24/2025, 5:45 PMJ2EEJAR=$CFUSION_HOME/runtime/lib/servlet-api.jar:$CFUSION_HOME/runtime/lib/jsp-api.jar:$CFUSION_HOME/runtime/lib/el-api.jar
And none of those libraries were ever packaged in the war file.bdw429s
04/24/2025, 5:57 PMbdw429s
04/24/2025, 5:58 PMdougcain
04/24/2025, 8:52 PMjava.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at coldfusion.tools.CommandLineInvoker.main(CommandLineInvoker.java:112)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryInfo
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
at java.base/java.net.URLClassLoader$1.run(Unknown Source)
at java.base/java.net.URLClassLoader$1.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at coldfusion.bootstrap.BootstrapClassLoader.loadClass(BootstrapClassLoader.java:263)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at coldfusion.compiler.NeoTranslator.<init>(NeoTranslator.java:144)
at coldfusion.tools.Compiler.main(Compiler.java:287)
... 5 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.TagLibraryInfo
at coldfusion.bootstrap.BootstrapClassLoader.loadClass(BootstrapClassLoader.java:303)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more
These paths worked with runwar5.0.8:
CFUSION_HOME=/usr/local/lib/serverHome/WEB-INF/cfusion
J2EEJAR=$CFUSION_HOME/lib/etc/servlet-api-3.1.jar:$CFUSION_HOME/../../../CommandBox/lib/runwar-5.0.8.jardougcain
04/24/2025, 8:53 PMjclausen
04/24/2025, 9:11 PM$CFUSION_HOME/../../../CommandBox/lib/runwar-5.0.8.jar
The default version of Runwar isn’t on Jakarta. that is going to be in $COMMANDBOX_HOME/cfml/modules/commandbox-boxlang/lib
jclausen
04/24/2025, 9:12 PMjavax
class, then you just need to point that line to the updated version of the runwar
jar in the lib
directory.dougcain
04/24/2025, 9:19 PMdougcain
04/24/2025, 9:20 PM