Jetty 11 does not find Jakarta servlets

Hi,

I am upgrading from Java 8 to Java 17, using maven and Jetty 11.0.18. Everything compiles and the server starts, but I don't get the welcome file and for all servlets I get a 404. This is my Main, which is called during startup. The servlets are in the jar. What could be the problem?

Here is my Main

  public static void main(String[] args) throws Exception {
    // Create a server that listens on port 8080.
    int port = Integer.parseInt(System.getenv().getOrDefault("PORT", "8080"));
    String host = System.getenv("HOST");
    Server server;
    if (host != null)
    server = new Server(new InetSocketAddress("dev.domain.com", port));
    else
    server = new Server(port);
 
        WebAppContext context = new WebAppContext();
        //Resource base = Main.class.getClassLoader().getResource("./target");
        //context.setBaseResource(base);
        context.setContextPath("/");
        context.setWelcomeFiles(new String[]{"index.html"});
        context.setParentLoaderPriority(true);
        server.setHandler(context);
 
    // Load static content from inside the jar file.
    URL webAppDir =
        Main.class.getClassLoader().getResource("META-INF/resources");
    System.out.println("webAppDir " + webAppDir);
    // webAppContext.setResourceBase(webAppDir.toURI().toString());
 
    System.out.println("Configuration discovered? " + context.isConfigurationDiscovered());
    System.out.println("getBaseResource " + context.getBaseResource());
    String [] classes = context.getConfigurationClasses();
    for (int i = 0; i<classes.length; i++)
    System.out.println("getConfigurationClasses " + classes[i]);
    // server.setDumpAfterStart(true);
    server.start();
  }
  
The output:
webAppDir file:/C:/<rootdir>/target/classes/META-INF/resources
Configuration discovered? true
getBaseResource null
getConfigurationClasses org.eclipse.jetty.webapp.WebInfConfiguration
getConfigurationClasses org.eclipse.jetty.webapp.WebXmlConfiguration
getConfigurationClasses org.eclipse.jetty.webapp.MetaInfConfiguration
getConfigurationClasses org.eclipse.jetty.webapp.FragmentConfiguration
getConfigurationClasses org.eclipse.jetty.webapp.JndiConfiguration
getConfigurationClasses org.eclipse.jetty.webapp.WebAppConfiguration
getConfigurationClasses org.eclipse.jetty.plus.webapp.EnvConfiguration
getConfigurationClasses org.eclipse.jetty.plus.webapp.PlusConfiguration
getConfigurationClasses org.eclipse.jetty.annotations.AnnotationConfiguration
getConfigurationClasses org.eclipse.jetty.webapp.JettyWebXmlConfiguration

Also tried to se MAVEN_OPTS to

-Dorg.eclipse.jetty.annotations.AnnotationConfiguration.LEVEL=DEBUG

but no relevant output. 

setDumpAfterStart(true) didn't list any of my servlets, should it?

What am I missing?

Best,

Kjell

0 1 274
1 REPLY 1

context.setResourceBase(webAppDir.toURI().toString());

solved the welcome file issue, but still no servlets. Is there a way to debug what AnnotationConfiguration actually does?