Skip to content

Application's main class is not found when using PropertiesLauncher with the new nested jar support #37992

@ilgrosso

Description

@ilgrosso

As reported by 3.2.0 RC1 release notes, we had to add

<loaderImplementation>CLASSIC</loaderImplementation>

to our spring-boot-maven-plugin definition in order to keep the generated exec JAR working.
Without the additional configuration, running java -jar ... leads to error

java.lang.ClassNotFoundException: org.apache.syncope.sra.SyncopeSRAApplication
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
        at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:94)
        at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:534)
        at java.base/java.lang.Class.forName(Class.java:513)
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:88)
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
        at org.springframework.boot.loader.launch.PropertiesLauncher.main(PropertiesLauncher.java:563)

The application itself is based on Spring Cloud Gateway 4.1.0-M2.

No issues until 3.2.0-M3.

The full plugin definition: https://github.com/apache/syncope/blob/master/sra/pom.xml#L180C1-L199C16

Metadata

Metadata

Assignees

Labels

type: regressionA regression from a previous release

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions