0
点赞
收藏
分享

微信扫一扫

工作中遇到问题一

无聊到学习 2022-01-14 阅读 105
springjava

1、tensorflow-gpu国内下载地址

https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow-gpu/

2、@FeignClient远程调用无反应问题

@FeignClient远程调用没有错误日志,请求也未发到远程服务,也未阻塞

java.lang.RuntimeException: com.netflix.client.ClientException
org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient#execute
com.netflix.client.AbstractLoadBalancerAwareClient#executeWithLoadBalancer(S, com.netflix.client.config.IClientConfig)

原因分析,由于远程服务的接口的get请求方法参数未加@RequestParam,笔者在写@FeignClient service对应方法的时候直接复制了远程服务controller的写法,也没有加@RequestParam,跟踪源码发现LoadBalancerFeignClient调用的时候,参数被当成了请求体解析然后抛出get方法不能有body异常,但是异常没有抛出到业务代码层,所以没有任何错误提示和信息。@FeignClient service的方法上加@RequestParam远程调用成功。

@GetMapping("/xxx/delete")
public Response<?> delete(String ids);

3、远程调用分页查询接口分页失效

现象:后端返回给前端的total固定为10

原因:远程服务A使用List接收服务B分页查询返回的集合list,断点查看可以发现B服务接口中pagehelper返回的list实际上是一个page对象,A服务接收后变成了ArrayList集合对象,丢失了分页属性。考虑使用Page接收,分页属性还是丢失,原因是page对象没有实现序列化,B服务返回数据时使用page对象的toPageInfo()方法,将数据转为pageinfo对象,使用pageinfo对象远程传输,分页正常。

4、vue-treeselect多选值不对

官网文档地址https://vue-treeselect.js.org/

设置支持多选时,v-model绑定对象的数组里会始终少一个选中项id,就是最新选中的那个option

:multiple="true"

解决方法:另外定义一个数组变量用来传参,在@select选中事件中手动将node.id放入数组,例如

this.queryParams.xxx.push(node.id)

5、el-tabs页面元素渲染样式

el-tabs页面元素渲染样式有问题

设置lazy懒加载后正常

6、发布项目报错NoClassDefFoundError:

重新发布项目报错:

NoClassDefFoundError: org/apache/catalina/core/ApplicationContext$DispatchData

原因:脚本停止进程没有清除干净,部分接口还在提供服务

解决方案:找到进程手动kill,重新发布成功

7、mybatis参数多了""双引号

mybatis传参没有额外加""双引号,就是普通的string类型,但是使用#{}拼成参数多了双引号,

问题原因没有找到,但是把条件放在标签中,问题解决了。

8、sql执行报错invalid comparison

执行同事写的方法报错

java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String

原来是mybatis中拼接的sql语句中的if标签条件判断里日期和空字符串进行了比较

<if test="surgeryDate != null and surgeryDate != ''">surgery_date = #{surgeryDate},</if>

改为

<if test="surgeryDate != null">surgery_date = #{surgeryDate},</if>

9、this.$refs获取不到

因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在

解决方法:将要使用this. r e f s 的 方 法 放 在 t h i s . refs的方法放在this. refsthis.nextTick语句里,this.$nextTick 将回调延迟到下次DOM更新循环之后执行。

		this.$nextTick(() => {
          this.$refs.xxx
        })
举报

相关推荐

0 条评论