当前位置: 首页 > news >正文

网站显示后台登陆链接优化资源配置

网站显示后台登陆链接,优化资源配置,门户网站源码,做游戏网站思想步骤出现问题 SpringBoot项目中使用Swagger作为文档工具,每次在使用它的文档时,IDE工具的控制台都会打印出如下异常,会让我们感觉很不爽。 68011 [http-nio-8000-exec-6] WARN i.s.m.p.AbstractSerializableParameter - Illegal DefaultValue …

出现问题

SpringBoot项目中使用Swagger作为文档工具,每次在使用它的文档时,IDE工具的控制台都会打印出如下异常,会让我们感觉很不爽。

68011 [http-nio-8000-exec-6] WARN  i.s.m.p.AbstractSerializableParameter - Illegal DefaultValue null for parameter type integer 
java.lang.NumberFormatException: For input string: ""at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)at java.lang.Long.parseLong(Long.java:601)at java.lang.Long.valueOf(Long.java:803)at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:688)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:722)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:643)at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33)at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719)at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3905)at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3219)at springfox.documentation.spring.web.json.JsonSerializer.toJson(JsonSerializer.java:38)at springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(Swagger2Controller.java:105)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)

问题原因

这是由于实体类使用@ApiModelProperty时,example属性没有赋值导致的,在AbstractSerializableParameter这个类的getExample方法中会将数值属性的example的转换数值类返回,example的默认值是"",因此当example没有赋值时,会出现上面的异常。getExample方法如下

    @JsonProperty("x-example")public Object getExample() {if (example == null||example.isEmpty()) {return null;}try {if (BaseIntegerProperty.TYPE.equals(type)) {return Long.valueOf(example);} else if (DecimalProperty.TYPE.equals(type)) {return Double.valueOf(example);} else if (BooleanProperty.TYPE.equals(type)) {if ("true".equalsIgnoreCase(example) || "false".equalsIgnoreCase(defaultValue)) {return Boolean.valueOf(example);}}} catch (NumberFormatException e) {LOGGER.warn(String.format("Illegal DefaultValue %s for parameter type %s", defaultValue, type), e);}return example;}

解决方案

只要将每一个数值类型上@ApiModelProperty的example都赋值数字字符串即可。

但是这个解决方法比较麻烦,若将源码中的if (example == null)改为if (example == null || example.isEmpty())就可以解决问题。我下载并修改了源码,将其打包后覆盖了maven仓库的jar包,这样项目代码不需要任何修改就可以解决问题。

同时,我又查看了v1.5.21的代码 ,源码的修改是一样的。其实也可以排除1.5.20版本的swagger-models.jar,引入1.5.21版本的swagger-models.jar。但是考虑到可能由于代码改动较大引发其他问题,因此个人感觉还是在1.5.20版本代码微调最好。

最后把修复过的jar包下载链接放在这里,下载后替换本地仓库对应的文件,然后项目重新导入jar包即可。

例如,我的电脑,通过命令行进入如下目录

cd D:\developer_tools\RepMaven\io\swagger\swagger-models\1.5.20

然后将两个文件复制进去覆盖原文件。

jar包下载地址:https://pan.baidu.com/s/1UhOAD2IgkORZ3OBGwmu70Q  提取码:8hdw

出自:https://blog.csdn.net/weixin_38229356/article/details/83353347

http://www.fp688.cn/news/159269.html

相关文章:

  • 做门户网站的营业范围下载百度app最新版
  • 免费找客户的网站外贸网站建设公司哪家好
  • 手机网站排名优化私人做网站建设
  • seo 网站结构百度竞价排名危机事件
  • 肉部网站建设包括哪些百度搜索排行榜前十名
  • 杭州高端网站灰色词快速排名接单
  • 用服务器ip怎么做网站企业网站的功能
  • 网站开发的技术难点怎么做百度推广
  • 做多个网站 买vps营销型网站策划
  • c 做的比较牛逼的网站叫什么宁波关键词网站排名
  • 用java开发网站的步骤百度软件下载
  • 阿里大鱼Wordpressseoul什么意思
  • 虚拟机中做网站企业网络推广的方法有哪些
  • 设计网站需要什么条件福建百度seo排名点击软件
  • 做网站找客源如何提高自己的营销能力
  • phpcms 做购物网站市场调查报告模板及范文
  • 滕州网站建适合奖励自己的网站免费
  • 济南做企业网站的公司做seo前景怎么样
  • 自己做网站花多少钱朔州seo
  • 餐饮环境评估在哪个网站做chrome手机版
  • php猎奇源码 织梦新闻视频图片八卦娱乐趣事资讯门户网站模板营销型网站建设推广
  • 网站代码字体变大网站建设推广专家服务
  • 网站定制开发前期要有一定的规划佛山关键词排名工具
  • 精通网站开发阅读营销网站建设创意
  • 那种投票网站里面怎么做google海外版入口
  • 南宁优化网站收费青岛seo网站关键词优化
  • 免费网站建设平台哪个好今天国际新闻最新消息10条
  • 做网站会提供源代码吗免费推广的方式
  • wordpress空白页面模板下载网站seo在线诊断分析
  • 营销型网站的推广网站建站价格