当前位置: 首页 > 后端技术 > Java

Swagger2报告规范中未定义任何操作!关闭WebMvcConfig注解后恢复正常

时间:2023-04-01 17:02:44 Java

今天在迁移一个老项目时,查看Swagger文档,发现直接报Nooperationsdefinedinspec。跟着代码看了一会儿,发现有一些返回的数据。API也被swagger扫描。看了一会儿,发现问题出在系统中有一个类实现了WebMvcConfigurer。swagger关闭@Configuration是正常的。所以那个类中的某些东西导致了swagger异常。最后在网上搜索了一段时间,发现是configureMessageConverters导致的原因。修复方法:1.新建类importcom.google.gson.JsonElement;importcom.google.gson.JsonParser;importcom.google.gson.JsonSerializationContext;importcom.google.gson.JsonSerializer;importspringfox.documentation。spring.web.json.Json;importjava.lang.reflect.Type;publicclassSpringfoxJsonToGsonAdapterimplementsJsonSerializer{@OverridepublicJsonElementserialize(Jsonjson,Typetype,JsonSerializationContextcontext){//这里原博客使用过时的方法,改变它returnJsonParser.parseString(json.value());}}2.修改WebMvcConfigurer的实现类@OverridepublicvoidconfigureMessageConverters(List>converters){converters.removeIf(httpMessageConverter->httpMessageConverterinstanceofMappingJackson2HttpMessageConverter);converters.add(gsonHttpMessageConverters());}@BeanpublicGsonHttpMessageConvertergsonHttpMessageConverters(){Gsongson=newGsonBuilder().registerTypeAdapter(Json.class,newSpringfoxJsonToGsonAdapter()).create();GsonHttpMessageConvertergsonConverter=newGsonHttpMessageConverter(gson);返回gsonConverter;}重启,问题就解决了。参考原博客:https://codeleading.com/artic。..