springdoc-openapi icon indicating copy to clipboard operation
springdoc-openapi copied to clipboard

/v3/api-docs fails with java.lang.NoSuchMethodError: io.swagger.v3.oas.models.media.Schema.addProperty(java.lang.String, io.swagger.v3.oas.models.media.Schema)

Open anatoly-spb opened this issue 3 years ago • 0 comments

I have hello world rest api service based on spring boot 2.7.3 powered JDK 17:

@RestController
public class ApiServerController {
  @PostMapping(value="/invoke")
  public InvokeResponse invoke(@RequestBody InvokeRequest request, MessageContext messageContext) {
    return new InvokeResponse();
  }
}

I have included into the pom.xml file the springdoc-openapi-ui module:

<dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.6.11</version>
    </dependency>

Here is a dependency tree: image

I have tried to invoke http://localhost:8080/v3/api-docs and get:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

There was an unexpected error (type=Internal Server Error, status=500).
'io.swagger.v3.oas.models.media.Schema io.swagger.v3.oas.models.media.Schema.addProperty(java.lang.String, io.swagger.v3.oas.models.media.Schema)'
java.lang.NoSuchMethodError: 'io.swagger.v3.oas.models.media.Schema io.swagger.v3.oas.models.media.Schema.addProperty(java.lang.String, io.swagger.v3.oas.models.media.Schema)'
	at org.springdoc.core.RequestBodyInfo.addProperties(RequestBodyInfo.java:91)
	at org.springdoc.core.GenericParameterService.calculateRequestBodySchema(GenericParameterService.java:385)
	at org.springdoc.core.GenericParameterService.calculateSchema(GenericParameterService.java:347)
	at org.springdoc.core.RequestBodyService.buildRequestBody(RequestBodyService.java:275)
	at org.springdoc.core.RequestBodyService.calculateRequestBodyInfo(RequestBodyService.java:251)
	at org.springdoc.core.AbstractRequestService.build(AbstractRequestService.java:311)
	at org.springdoc.api.AbstractOpenApiResource.calculatePath(AbstractOpenApiResource.java:453)
	at org.springdoc.api.AbstractOpenApiResource.calculatePath(AbstractOpenApiResource.java:615)
	at org.springdoc.webmvc.api.OpenApiResource.lambda$calculatePath$11(OpenApiResource.java:234)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at org.springdoc.webmvc.api.OpenApiResource.calculatePath(OpenApiResource.java:215)
	at org.springdoc.webmvc.api.OpenApiResource.lambda$getPaths$2(OpenApiResource.java:185)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at org.springdoc.webmvc.api.OpenApiResource.getPaths(OpenApiResource.java:164)
	at org.springdoc.api.AbstractOpenApiResource.getOpenApi(AbstractOpenApiResource.java:329)
	at org.springdoc.webmvc.api.OpenApiResource.openapiJson(OpenApiResource.java:139)
	at org.springdoc.webmvc.api.OpenApiWebMvcResource.openapiJson(OpenApiWebMvcResource.java:116)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)

What is wrong?

Thank you!

anatoly-spb avatar Sep 15 '22 08:09 anatoly-spb