cancel
Showing results for 
Search instead for 
Did you mean: 

While implement OData using spring boot 3.0.1 , getting 500 while calling endpoint

AM07
Newcomer
0 Kudos
467
  • SAP Managed Tags:

Hi team,

Below Same code is working for spring boot 2.7.1 while upgrade to Spring boot 3.0.1 it not working. I have upgraded corresponding pom.xml but no luck. Cloud you pls help on this?

CxfConfig class:

 

package com.arif.test;
 
import java.util.HashMap;
import java.util.Map;
 
import org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class CxfConfig {
 
@Bean
public ServletRegistrationBean<CXFNonSpringJaxrsServlet> getODataServletRegistrationBean() {
ServletRegistrationBean<CXFNonSpringJaxrsServlet> odataServletRegistrationBean = 
new ServletRegistrationBean<CXFNonSpringJaxrsServlet>(new CXFNonSpringJaxrsServlet(), "/arif/test/*");
Map<String, String> initParameters = new HashMap<>();
initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");
initParameters.put("org.apache.olingo.odata2.service.factory", "com.arif.test.odata.jpa.CustomODataJPAServiceFactory");
odataServletRegistrationBean.setInitParameters(initParameters);
return odataServletRegistrationBean;
}
}

 

Spring boot error:

 

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.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:992)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:695)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:118)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:119)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:400)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:859)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:840)
2024-06-14 20:10:27,768 INFO [http-nio-8080-exec-2] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]: Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-06-14 20:10:27,768 INFO [http-nio-8080-exec-2] org.springframework.web.servlet.DispatcherServlet: Initializing Servlet 'dispatcherServlet'
2024-06-14 20:10:27,785 INFO [http-nio-8080-exec-2] org.springframework.web.servlet.DispatcherServlet: Completed initialization in 17 ms

Error in postman:

 

"status": 500,
"error": "Internal Server Error",
"path": "/arif/test/ExampleViewSet"

View Entire Topic
NiharJain
Associate
Associate
0 Kudos

Hi,
Kindly use this in the code instead of the current line:

initParameters.put("jakarta.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");

Make sure this dependency is added in the pom and this should work fine then

parithosh_poojary
Associate
Associate
0 Kudos
Hey, could you drop the dependency here, think you missed it.