On Fri, Dec 15, 2023 at 4:18 AM Jun Suzuki <junsuzuki1...@gmail.com> wrote: > > Hello all, > > Does anyone have experience of implementation of AOT/GraalVM by > following official documentation as below? > https://tomcat.apache.org/tomcat-9.0-doc/graal.html > > I created a simple spring framework application(deployed as a war > file) which is working well under Tomcat10.x, GraalVM21 with JDK21. > Then I'm trying to transform the application into native image based > on the documentation. > I download the Tomcat Stuffed module and started to do packaging and building. > However, I encountered some issues by following the steps from the > documentation. > > (1) Guidance is not so clear about following points: > Should I copy the deployed application(with or without war file?) from > existing Tomcat server webapps directory, to webapps directory of > $TOMCAT_STUFFED? > Should I copy all the files from conf directory of existing Tomcat > server, to conf directory of $TOMCAT_STUFFED?
Yes. When building your image, you have to compile all the classes into it. So that means all the classes of the webapp as well. So if you don't copy your webapp for the script to compile, no webapp classes ... Also all the webapp Java classes and JARs will have to be included in the image as well for annotation scanning. > (2) On the step of execution of "$JAVA_HOME/bin/java -Dcatalina.base=. > -Djava.util.logging.config.file=conf/logging.properties -jar > target/tomcat-stuffed-1.0.jar --catalina -generateCode src/main/java", > errors messages show as below: > ................................................... > Can't load log handler "1catalina.org.apache.juli.AsyncFileHandler" > java.lang.ClassNotFoundException: 1catalina.org.apache.juli.AsyncFileHandler > java.lang.ClassNotFoundException: 1catalina.org.apache.juli.AsyncFileHandler > at > java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) > at > java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) > ................................................... Yes, avoid the juli file handlers. There's a jul file handler I think: java.util.logging.FileHandler > (3) When using JDK17, the first step of maven build failed with following > error: > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile > (default-compile) on project tomcat-stuffed: Fatal error compiling: > error: release version 21 not supported. > After I switched to JDK21, build completed successfully. Is the > approach only support JDK21? Yes, if you take the path to stuffed that is mentioned in the docs, it will be from the "main" Tomcat branch, which means Java 21 (it got updated since). The module exists on the "10.1.x" branch as well, where it is Java 11 instead, matching Tomcat 10.1. Don't be afraid to change the release target and Tomcat version used in the pom. I'll update the graal.html to at least point to the 10.1.x branch. Rémy > Please kindly provide any insights on this. > Thank you > > Jun > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org