日常踩坑记录
解决方法:
使用逆向工程脚本时,生成的映射实体类在下面的注解会多table:
删除即可
@TableName(“table:ts_app_oracle_apply”)
异常描述:更新数据时,个别时间字段没有进行更新,但是更新操作执行完成后,不该被更新的字段更新了
解决方法: 数据库中,设计表,修改所有时间字段,根据当前时间戳更新,关闭该选项
详细信息:java后台使用content-disposition属性返回中文文件名时,出现编码问题 urlencode编码,需要前端解码
access-control-allow-credentials: true
access-control-allow-headers: Origin,X-Requested-With,accept,content-type
access-control-allow-methods: OPTIONS,GET,POST,DELETE,PUT
access-control-allow-origin: *
content-disposition: attachment;fileName=%E5%A4%A9%E5%B1%B1%E5%B9%B3%E5%8F%B0%E7%94%A8%E6%88%B7%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E8%B5%84%E6%BA%90%E7%94%B3%E8%AF%B7%E5%AE%89%E5%85%A8%E8%B4%A3%E4%BB%BB%E6%89%BF%E8%AF%BA%E4%B9%A6.docx
content-type: application/force-download
date: Mon, 10 Feb 2020 03:11:46 GMT
transfer-encoding: chunked
指定配置文件启动命令失效,与启动脚本与jar包同级目录下,建立config文件夹,存放配置文件在其中,
即可指定外部配置文件启动
原因:没有关闭对应输入流
经检查,发现是两张表excel中,某个字段名不一致导致
原因:在后台的逻逻辑判断时,只考虑了应用申请记录不为空的前提,当应用为空的时候
控制按钮的值就无法赋值,导致了前端控制按钮的值为null
解决:修改判断逻辑
原因:在nginx代理时,需要用到静态资源,静态资源的目录是从根目录也是就是“/”开始的
n那么,在配置代理时,location后就不能带有前缀或者后缀,只能以“/”开始的
当然也不是绝对,要考虑实际的静态资源的状态,去配置代理
现象: 在使用nginx代理时,发现登录的cas模块会跳到代理机ip+端口的地址,不会跳到代理地址
原因: 前端代码在写登录时,直接使用本地地址作为登录地址,所有要想到正确的登录地址,需要进行代理,才可以
原因:文件上传直接报错,其实文件是上传成功的,但是由于数据库的某个字段不能为空,导致程序异常
返回错误码,直接显示文件上传失败
要注意部署数据库的环境与服务环境是否相同
测试环境接口可以正常请求,但是正式环境无法请求,原因是正式环境无法直接请求正式环境对应接口,加了
查看代码时,突然发现ftp连接后没有关闭,虽然ftp会自动关闭,但是连接过多时不关闭会对资源产生影响
没有关闭压缩包文件对应的流
没有对接口地址
忘记配置端口
linux中的文件符为/,windows中的文件符为\,要注意区分
在使用轻量数据库h2时,发现插入数据正常,但是查询数据会报错,会将插入的string字符串,强制转换为int类型
检查后发现,h2数据表的字段顺序与实体类中的字段顺序必选保持一致,否则会出错
使用postwoman时,接口无法正常请求测试,但通过swagger可以正常测试使用
定位后发现postwoman是使用XMLRequest发送请求,需要在后台代码中设置跨越处理
用户上传文件后无法导出下载的问题,检查后发现代码没有判断非空选项值,且ftp目录权限存在异常,已经修复
redis数据库中有对应的值,但是在代码中无法获取,调试后发现是序列化原因,代码发送取值请求时,key的序列化与redis的序列化
不一致,所以获取值失败
pom依赖存在冲突
在项目中没有使用到mongoDB的任何依赖,但是运行时抛出了没有配置mongoDB的异常
原因是在项目中使用了jmeter的依赖包,而jimter依赖包会使用MongoDB的依赖
maven在解决依赖时,会自动解决传递依赖,所以会自动引入mongodb的依赖,导致运行异常
只需要在启动类中添加排除注释即可
也可以在.iml文件中,搜索MongoDB的依赖,删除即可
在mybatis plus的映射构造类中,使用了lamlok时,会自动建立无参构造
但是如果在构造类中手动建立了构造函数,那么mybatis在执行自带查询时,结果返回会自动使用建好的构造函数
会导致返回值无法返回的异常
解决办法就是,只转一次。转两次就会出现这个情况,你可以把之前转的json转成map
再使用java代码调用jmeter的接口去发送post请求时,发现json字符串会被转义
即双引号,大括号之类的特殊符号会被转义
涉及到的类为 HTTPSamplerProxy类与SampleResult类
HTTPSamplerProxy类设置请求参数,接口地址端口请求头等信息
SampleResult类用来发送请求,并接收返回结果
但是在HTTPSamplerProxy参数传递的过程中并为发现字符转义
在SampleResult发送请求时,json字符串被转义,涉及方法为queryString方法
经调试发现,参数转义步骤,检查为什么会执行转义
可能性猜测为.
HTTPSamplerProxy添加请求参数时,使用的形式为key:value形式,当请求参数也为键值对形式时
不论是post还是get,参数都会被拼接到url接口地址的后面,所以再使用SampleResult发送请求时
url中的特殊符号会全部被转义
所以当参数为json字符串类型,且位于body时,不用添加参数的key,直接将值添加到HTTPSamplerProxy实体中即可
1:参数位于query时,且参数为json字符串时,如何避免转义?
此时必须转义,否则报错,目前只发现可以手动转义