Here is my CXF web service application. When I upgraded javax to jakarta here shows the change and exception.
cxfVersion=4.0.2
slf4jVersion=2.0.7
org.apache.cxf:cxf-rt-transports-http-jetty:4.0.2
org.eclipse.jetty:jetty-servlet:11.0.15
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2
public void Server startServer(WebServiceClientFactory<Order> webServiceClientFactory,
TokenAuthorizer tokenAuthorizer) {
initResources(webServiceClientFactory);
CXFNonSpringJaxrsServlet cxf = new CXFNonSpringJaxrsServlet();
ServletHolder servlet = new ServletHolder(cxf);
servlet.setInitParameter("jakarta.ws.rs.core.Application", MainApplication.class.getName());
servlet.setInitOrder(1);
servlet.setName("services");
servlet.setForcedPath("services");
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(servlet, "/*");
Server jetty = JettyUtils.getJetty(clientFactory.getCertificateClient(), ConfigUtils.CONFIG);
jetty.setHandler(handler);
jetty.start();
}
And the expception now I'm getting is showing below
jakarta.servlet.ServletException: At least one resource class should be specified
at org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet.getServiceClasses(CXFNonSpringJaxrsServlet.java:304)
at org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet.init(CXFNonSpringJaxrsServlet.java:153)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:633)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:415)
at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:725)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:749)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:902)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
at org.eclipse.jetty.server.Server.start(Server.java:470)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
at org.eclipse.jetty.server.Server.doStart(Server.java:415)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)