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

Reply via email to