I have upgraded my java springboot application versions from
java 1.8 to java21
springboot 2.1.16 to springboot 3.2.5
spring framework 6.1.6
in controller test cases i am getting issue:
Error creating bean with name ‘routerFunctionMapping’ defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Failed to instantiate [org.springframework.web.servlet.function.support.RouterFunctionMapping]: Factory method ‘routerFunctionMapping’ threw exception with message: Cannot invoke “com.fasterxml.jackson.databind.ObjectReader.forType(java.lang.Class)” because the return value of “com.fasterxml.jackson.databind.ObjectMapper.reader()” is null
Caused by: java.lang.NullPointerException: Cannot invoke “com.fasterxml.jackson.databind.ObjectReader.forType(java.lang.Class)” because the return value of “com.fasterxml.jackson.databind.ObjectMapper.reader()” is null
at com.jayway.jsonpath.spi.json.JacksonJsonProvider.<init>(JacksonJsonProvider.java:55)
I am not using webflux dependency
My Controller test class:
@Slf4j
@WebMvcTest(controllers = Controller.class)
@Import({Test.class})
@EnableWebMvc class ControllerTest extends TestClass {
@Autowired
private MockMvc mockMvc;
@MockBean
private Service service;
@InjectMocks
private Controller controller;
private Gson gson = new GsonBuilder().create();
@BeforeAll
public static void init() {
prepareErrorResponse();
prepareTestData();
}
ObjectMapper mapper = new ObjectMapper();
@Test
void testGetList() throws Exception {
List<Place> placeList = new ArrayList<>();
placeList.add(place);
Mockito.when(service.getAllPlaces()).thenReturn(placeList);
mockMvc.perform(get("/api/v1/places”)).andExpect(status().isOk());
}
}
Dependencies i am using:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</exclusion>
<exclusion>
</dependency>
Have removed webflux dependency from my pom.xml
still getting the same error
6