使用Spring Boot 2.4.5和IntelliJ 2021.2。迁移后
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
到
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.10</version>
</dependency>
每次我访问http://localhost:8080/swagger-ui.html
。页面上写着:
获取错误未定义/v3/api文档
当我检查日志时:
java.lang.IllegalStateException:为“/v3/api文档”映射的不明确处理程序方法:{public org.springframework.http.ResponseEntity springfox.documentation.oas.web.OpenApiControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest),public java.lang.String org.springdoc.webmvc.api.OpenApiWebMvcResource.openapiJson(javax.servlet.http.HttpServletRequest,java.lang.String)抛出com.fasterxml.jackson.core。JsonProcessingException}位于org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:426)位于org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:377)位于org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal(RequestMappingInfoHandlerMapping.java:125)位于org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal(RequestMappingInfoHandlerMapping.java:67)位于org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:498)位于org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1257)位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)位于org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
似乎有一个重复的处理程序方法具有来自SpringFox的相同路径,我如何从SpringFox中删除该方法(它不再存在于我的pom文件中)?
删除swagger依赖项,springfox依赖项。只添加openapi依赖项就足够了。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.6</version>
</dependency>
您是否仍然同时具有这两个依赖项?除了webflux,我也有同样的问题。经过一番挖掘,我发现:
这两个类都为“/v3/api文档”映射创建处理程序。正如springdoc文档所警告的那样,它们是不兼容的:
https://springdoc.org/#differentiation-to-springfox-project
11.35与Springfox项目的区别
11.36。如何使用springdoc-openapi迁移到OpenAPI 3
springdoc.swagger-ui.pathswagger-ui.html
我试着遵循以下几点: https://www.dariawan.com/tutorials/spring/documenting-spring-boot-rest-api-springdoc-openapi-3/ 如何处理注释,如:
我正在使用mapstruct从一个DTO映射到另一个DTO。我有多个默认方法,但其中2个返回值为String,并且使用相同的类作为输入参数,这给我带来了“使用java MapStruct的模糊映射方法”错误。 错误:(16,7)Java:在将属性“java.lang.String StatusHistory”映射到java.util.Map:java.util.Map toMap(java.lan
我需要公开一些在REST API方法中不直接使用的模型。 对于springfox,我使用Docket的方法以编程方式将模型添加到规范中: 如何使用springdoc? 我已经创建了一个带有dummy参数的dummy操作,其中包括所有必需的模型。但我觉得这种方法还有改进的空间。
我用Java编写REST api,并使用Groovy和Spock进行测试。
选项(Options) Glide v4 中的一个比较大的改动是Glide库处理选项(centerCrop(), placeholder() 等)的方式。在 v3 版本中,选项由一系列复杂的异构建造者(multityped builders)单独处理。在新版本中,由一个单一类型的唯一一个建造者接管一系列选项对象。Glide 的generated API进一步简化了这个操作:它会合并传入建造者的选项
我有两种将实体映射到域的方法。 当我试图定义实体列表到域的映射方法时,我发现了用于映射集合元素的模糊映射方法。 有没有一种方法可以定义用于映射对象集合的方法