Hi Jaap, First, maybe I was not clean in my presentation: Karaf 5 is still under development and so, everything is not yet ready. As said, I will “move” the code to Apache Karaf repo as soon as I consider I have something clean and running.
Anyway, about your email, I will check. Today my focus is on the OsgiApplicationManager to be Karaf 4 compliant. I also have to improve the Karaf Config service. By the way, you don’t need your own Main, just use the repackage with regular provided Main (you can take a look on the K4 assembly repackage as an example). I will create a gradle/maven plugin with repackage. Regarding your issue, as you are running with JDK11, I guess you have to add --add-modules java.security.jgss to avoid the NoClassDefFoundException. Thanks anyway for your feedback, much appreciated. Regards JB > Le 26 sept. 2021 à 12:00, jgfrm <[email protected]> a écrit : > > Hi Jean-Baptiste, > > I managed to start (well not completely) my spring application. > However, while starting up, I get an exception: > > 11:43:03.148 [main] ERROR o.s.boot.SpringApplication:837 - Application run > failed > org.springframework.context.ApplicationContextException: Unable to start web > server; nested exception is java.lang.NoClassDefFoundError: > org/ietf/jgss/GSSException > > Any ideas? > > Also, I had to make modifications in > SpringBootApplicationManagerService/start: > > try { > Thread.currentThread().setContextClassLoader(classLoader); > // disable tomcat stream handler > /* There is no TomcatURLStreamHandlerFactory in my spring jar > final Method tomcat = > classLoader.loadClass("org.apache.catalina.webresources.TomcatURLStreamHandlerFactory").getMethod("disable"); > if (!tomcat.isBridge()) { > tomcat.setAccessible(true); > } > tomcat.invoke(null, null); > */ > // invoke spring boot main > final Method main = > classLoader.loadClass("org.springframework.boot.loader.JarLauncher").getMethod("main", > String[].class); > main.setAccessible(true); > log.info("Call JarLauncher"); > if (properties.get("args") != null) { > log.info("Call JarLauncher with args"); > main.invoke(null, new Object[]{ properties.get("args") }); > } else { > log.info("Call JarLauncher without args"); > main.invoke(null, new Object[]{new String[0]}); // the > original invoke did not work for me > } > } finally { > Thread.currentThread().setContextClassLoader(original); > } > > Further details: > - openjdk version "11.0.12" 2021-07-20 > - invocation: > java -cp > ../karaf5/assemblies/k4/target/k4-5.0-SNAPSHOT.jar:target/e3web-test-1.0-SNAPSHOT.jar:../karaf5/services/spring-boot-application-manager/target/spring-boot-application-manager-5.0-SNAPSHOT.jar > -Dkaraf.config=src/main/resources/karaf.json Main > > Main.java: > ### > public class Main { > public static void main(String[] args){ > System.out.println("Starting Karaf"); > Karaf karaf = Karaf.builder().build(); > karaf.start(); > } > } > ### > > Best, > > -- Jaap > > |-----Oorspronkelijk bericht----- > |Van: Jean-Baptiste Onofré <[email protected]> > |Verzonden: vrijdag 24 september 2021 10:34 > |Aan: [email protected] > |Onderwerp: Re: Karaf 5 > | > |Hi Jaap, > | > |The presentation is available here: > | > |https://docs.google.com/presentation/d/1nDqd4oVbrggTDlwrzWc8zEdahKhcS > |VZJjlPk5FPxfBE/edit?usp=sharing > | > |Karaf 5 WIP is available here: > | > |https://github.com/jbonofre/karaf5 > | > |I'm available on Slack or by email if you wanna chat about Karaf5. > | > |Regards > |JB > | > |On 24/09/2021 10:06, jgfrm wrote: > |> Hi, > |> > |> I have two questions about Karaf 5: > |> - is the presentation by Onofre at ApacheConf online somewhere? > |> - is it possible to explore Karaf 5 (or: what is there right now)? I > |> am in particular interested in the Spring Boot functionality, as I > |> have a Spring Boot application that I want to port to Karaf to support > |> dynamic loading of components. I have found the github repo of Onofre, > |> but it is unclear to me how e.g. to start Karaf. > |> > |> Best, > |> > |> -- Jaap > |> >
