0

I have converted my java application into native image. I am using JettyServer, if i run the binary, jettyserver got started , but if a send an api request to the server it is throwing the following error instead it should execute my doGet or doPost method in servlet

java.lang.NoSuchMethodException: com.servers.servlet.JettyServlet.<init>()
        at java.lang.Class.getConstructor0(DynamicHub.java:3082)
        at java.lang.Class.getDeclaredConstructor(DynamicHub.java:2178)
        at org.eclipse.jetty.server.handler.ContextHandler$StaticContext.createInstance(ContextHandler.java:2784)
        at org.eclipse.jetty.servlet.ServletContextHandler$Context.createInstance(ServletContextHandler.java:1280)^M
        at org.eclipse.jetty.server.handler.ContextHandler$StaticContext.createServlet(ContextHandler.java:2801)
        at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:1164)
        at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:575)
        at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:482)

I have configured a health call for server with /health path, if i send request with this the following exception happens

2022-11-23 16:46:48.824:WARN:oejs.HttpChannel:qtp979267891-167: /health^M
javax.servlet.ServletException: com.servers.servlet.JettyServlet-4d00e3ce@f10c481==com.servers.servlet.JettyServlet,jsp=null,order=-1,inst=true,async=true^M
        at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:617)^M
        at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:482)^M
        at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:725)^M
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)^M
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)^M
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)^M
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)^M

NullPointerException sometimes for health call.

2022-11-23 16:46:49.723:WARN:oejs.HttpChannel:qtp979267891-170: /health^M
java.lang.NullPointerException^M
        at org.eclipse.jetty.servlet.ServletHolder$UnavailableServlet.service(ServletHolder.java:1247)^M
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:760)^M
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)^M
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)^M
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)^M
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)^M
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)^M
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)^M
        at org.eclipse.jetty.server.Server.handle(Server.java:500)^M
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)^M

I can clearly see here that my Jetty server started successfully, but the requests are not being handled..? Is there any way to do this..? did i miss anything while building the native-image ..?

Roop Sai
  • 11
  • 2

1 Answers1

0

You probably need to add --enable-http or --enable-https to your native-image command line

peterz
  • 306
  • 1
  • 3