2023年12月19日(火) 16:11 Jun Suzuki <[email protected]>:
>
> 2023年12月19日(火) 1:18 Rémy Maucherat <[email protected]>:
> >
> > On Mon, Dec 18, 2023 at 1:28 PM Jun Suzuki <[email protected]> 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: [email protected]
For additional commands, e-mail: [email protected]