2023年12月19日(火) 16:11 Jun Suzuki <junsuzuki1...@gmail.com>: > > 2023年12月19日(火) 1:18 Rémy Maucherat <r...@apache.org>: > > > > On Mon, Dec 18, 2023 at 1:28 PM Jun Suzuki <junsuzuki1...@gmail.com> wrote: > > > > > > Hello all, > > > > > > I'm now following the guide of > > > https://tomcat.apache.org/tomcat-11.0-doc/graal.html to build Tomcat > > > into native image. > > > The original thread I posted before has become too long to be easily > > > understood, so please let me raise a new thread to clarify. > > > I break down the contents from the guide into a step-by-step > > > procedure, and I would appreciate it if you can verify the steps and > > > check for the issues. > > > > > > [Environment]: Tomcat 10.0.27, Ant 1.10.14, Maven 3.6.3, GraalVM EE > > > 21.x+Java17 > > > [Steps]: > > > 1. Download the stuffed folder according to the guide. > > > 2. Edit the original pom to align with the Tomcat and JDK version: > > > <properties> > > > <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> > > > <mainClass>org.apache.catalina.startup.Tomcat</mainClass> > > > <tomcat.version>10.0.27</tomcat.version> > > > </properties> > > > .................. > > > <plugin> > > > <groupId>org.apache.maven.plugins</groupId> > > > <artifactId>maven-compiler-plugin</artifactId> > > > <version>3.11.0</version> > > > <configuration> > > > <release>11</release> > > > </configuration> > > > </plugin> > > > 3. Copy conf and webapps folders from Tomcat to the stuffed folder. > > > 4. Edit the logging properties(Deleted all Juli-related statements to > > > avoid runtime error) > > > handlers = java.util.logging.ConsoleHandler > > > .handlers = java.util.logging.ConsoleHandler > > > ............................. > > > java.util.logging.ConsoleHandler.level = FINE > > > # java.util.logging.ConsoleHandler.formatter = > > > org.apache.juli.OneLineFormatter > > > java.util.logging.ConsoleHandler.encoding = UTF-8 > > > 5. Build and packaging. > > > mvn package > > > ant -Dwebapp.name=ROOT -f webapp-jspc.ant.xml > > > ant -Dwebapp.name=manager -f webapp-jspc.ant.xml > > > ant -Dwebapp.name=examples -f webapp-jspc.ant.xml > > > > > > Until here everything was running fine without error. And when I > > > executed the next command, error message displayed as below: > > > mvn package > > > .......................................................................................................... > > > [INFO] --- maven-compiler-plugin:3.11.0:compile (default-compile) @ > > > tomcat-stuffed --- > > > [INFO] Changes detected - recompiling the module! :source > > > [INFO] Compiling 130 source files with javac [debug release 17] to > > > target/classes > > > [INFO] > > > /home/opc/project/tomcat-native/stuffed/src/main/java/manager/org/apache/jsp/WEB_002dINF/jsp/sessionsList_jsp.java: > > > Some input files use unchecked or unsafe operations. > > > [INFO] > > > /home/opc/project/tomcat-native/stuffed/src/main/java/manager/org/apache/jsp/WEB_002dINF/jsp/sessionsList_jsp.java: > > > Recompile with -Xlint:unchecked for details. > > > [INFO] Some messages have been simplified; recompile with > > > -Xdiags:verbose to get full output > > > [INFO] ------------------------------------------------------------- > > > [ERROR] COMPILATION ERROR : > > > [INFO] ------------------------------------------------------------- > > > [ERROR] > > > /home/opc/project/tomcat-native/stuffed/src/main/java/examples/org/apache/jsp/jsp/tagplugin/choose_jsp.java:[162,210] > > > cannot access javax.servlet.jsp.tagext.TagSupport > > > class file for javax.servlet.jsp.tagext.TagSupport not found > > > [ERROR] > > > /home/opc/project/tomcat-native/stuffed/src/main/java/examples/org/apache/jsp/jsp/tagplugin/choose_jsp.java:[165,35] > > > cannot access javax.servlet.jsp.tagext.Tag > > > class file for javax.servlet.jsp.tagext.Tag not found > > > .......................................................................................................... > > > > > > Could you please help to indicate what I have missed from the above steps? > > > And I would really appreciate it if you could offer some kind of > > > step-by-step hands-on examples about how to practice to run Tomcat as > > > native image. > > > > This seems unrelated, you are apparently trying to run an EE8 webapp > > (the examples from Tomcat 9) on a EE10 container. The package names > > for the APIs changed to jakarta.*. > > > > Rémy > > > > Thank you for the comments. > To avoid excessive trial and error, is it possible to provide a > combination of tested versions that ensure default Tomcat examples > running in native image without error? > Could you please indicate the version of Tomcat, GraalVM(EE or CE), > JDK, maven, ant? I want to use these specific versions you pointed to > make sure default Tomcat examples will run normally in term of native > image without additional customization. > Thank you in advance. > Jun
Hi, I have accomplished each steps from the guide to packaging a simple war file(containing a single servlet which is entry point from web access) without error, except for last step of executing produced native image: SEVERE: Allocate exception for servlet [GreetingServlet] com.oracle.svm.core.jdk.UnsupportedFeatureError: No classes have been predefined during the image build to load from bytecodes at runtime. at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:121) at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.PredefinedClassesSupport.throwNoBytecodeClasses(PredefinedClassesSupport.java:76) at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.PredefinedClassesSupport.loadClass(PredefinedClassesSupport.java:130) at java.base@21/java.lang.ClassLoader.defineClass(ClassLoader.java:280) at java.base@21/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ....................................................................... I checked the source/main/java folder which is supposed to contain pre-generated code, but it looks like only index_jsp.java is existing. Whether servlet should also be pre-generated? And whether the error came from the missing of pre-generated servlet? I would appreciate your finding and insight about this issue. Thank you Jun --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org