###bladeX的微服务中,添加后,总是报 No mapping for GET / 异常,No handler found for GET /错误 原因如下:
2021-10-22 08:08:47.230 WARN 5396 --- [ XNIO-1 task-14] o.s.web.servlet.PageNotFound : No mapping for GET /
2021-10-22 08:08:47.232 ERROR 5396 --- [ XNIO-1 task-14] o.s.c.log.error.RestExceptionTranslator : 404没找到请求:No handler found for GET /
swagger 配置有问题,修改后正常的,
原配置:
- name: trash
uri: localhost:17044
location: /v2/api-docs
改成以下正常了:
- name: 智慧垃圾箱
uri: 127.0.0.1 ###测试,请指向本机
location: /blade-trash/v2/api-docs
### bladeX商业项目 中使用JPA 中 :报 Space is not allowed after parameter prefix ':'
(SELECT a.user_id,(@rowno:=@rowno+1)
改成下面:
(SELECT a.user_id,(@rowno\\:=@rowno+1)
备注:JSPL中 “:”是保留符号,必须使用转义 \\:
### JPA错误 Specified class is an interface
JPSL 格式错误,请仔细检查;
###docker镜像无法删除 Error:No such image:xxxxxx
删除所有镜像
docker rmi $(docker images -aq)
删除失败,报错
Error: No such image: 7e4d58f0e5f3
查看路径
cd /var/lib/docker/image/overlay2/imagedb/content/sha256/
删除对应的数据
7e4d58f0e5f3b60077e9a5d96b4be1b974b5a484f54f9393000a99f3b6816e3d
### bladeX cloud SerializationException: Could not read JSON 看错误信息,像是JSON转换 错误,但其实是redis
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Illegal character ((CTRL-CHAR, code 11)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (byte[])"3org.springblade.core.datascope.model.DataScopeModecreate_dept "; line: 1, column: 2]; nested exception is com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 11)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (byte[])"3org.springblade.core.datascope.model.DataScopeModecreate_dept "; line: 1, column: 2]
### Cause: org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Illegal character ((CTRL-CHAR, code 11)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (byte[])"3org.springblade.core.datascope.model.DataScopeModecreate_dept "; line: 1, column: 2]; nested exception is com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 11)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: (byte[])"3org.springblade.core.datascope.model.DataScopeModecreate_dept "; line: 1, column: 2]
Illegal character ((CTRL-CHAR, code 31))
编码转换错误
解决方案:redis序列化方式是:protostuff,报错的原因,改成JSON即可;
1)
#blade配置
blade:
#token配置
token:
#是否有状态
state: false
#redis序列化方式(注意这里序列化方式是:protostuff,报错的原因,改成json)
redis:
serializer-type: protostuff
#接口配置
2)redis 服务器缓存要清除;要不还是取不到,其实这里纠结了很久,是缓存还是序列化配置问题;不是jackson 的JSON转换问题;
参考:
使用@DataAuth注解 本人及下级部门数据权限是 redis序列化错误 - Blade技术社区 (bladeX 官方解决办法)
### nacos请求响应错误
Error to process server push response com.alibaba.nacos.client.remote.worker
com.alibaba.nacos.common.remote.client.RpcClient
注册的这个地址,本机是有的,但是就是注册不上去 172.17.0.1
而错误日志走的是IP 172.17.0.2
[踩坑] Nacos服务注册地址为内网IP的解决办法 - 简书 (这里有分析出来)
Docker部署的Spring Cloud微服务注册到Nacos的IP为私网无法访问 - 有来技术团队 - 博客园
目前使用JPA 还是有些小问题,但不影响正常使用;有时间再改进;
###centos7 mkdir:无法创建目录"***": 设备上没有空间
1、查看系统磁盘使用情况
df -h
2、查看docker镜像及容器空间占比
docker system df
3、查找大文件 # 查找"/"目录下所有大于100M的所有文件
find / -type f -size +500M -print0 | xargs -0 du -h | sort -nr
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
4、清理大文件(主要是docker容器日志)找到大文件,删除即可;
echo > xxxx.log
5、根治方法:控制容器日志输出量
### JPA HQL错误
IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: member near line 1, column 14 [select count(member)
from org.springblade.entity.secondary.Member member]
分析:hql 不支持 left join on 要改成where 就可以了
###CORS error所有的接口都正常了,除了上传图片[Servlet]方式
所有接口都正常,在外置的浏览器中,发现图片上传不了;
原因是,上传使用的[Servlet]方式,
解决方案:添加以下方法:
@Override
protected void doOptions(HttpServletRequest request, HttpServletResponse response) {
response.setHeader("Access-Control-Allow-Origin" , "*" );
response.setHeader("Access-Control-Allow-Credentials" , "true" );
response.setHeader("Access-Control-Allow-Methods" , "*" );
response.setHeader("Access-Control-Max-Age" , "36000" );
response.setHeader("Access-Control-Allow-Headers" , "Authorization,Origin,X-Requested-With,Content-Type,Accept,"
+ "content-Type,origin,x-requested-with,content-type,accept,authorization,token,id,X-Custom-Header,X-Cookie,Connection,User-Agent,Cookie,*" );
response.setHeader("Access-Control-Request-Headers" , "Authorization,Origin, X-Requested-With,content-Type,Accept" );
response.setHeader("Access-Control-Expose-Headers" , "*" );
}
参考:https://blog.csdn.net/wade725/article/details/103832559
###iptables: No chain/target/match by that name,创建docker container时出错;
docker restart container-name
然后得到一个错误
docker0: iptables: No chain/target/match by that name
原因:
在docker启动这个容器的时候,防火墙是开启的,docker像防火墙注册了端口映射规则,
过了一段时间,因为某些原因,我关闭了防火墙,在访问docker里面的服务时发现有一些
怪异,但是又说不上来什么怪异,就试着重启一下服务器,然后就得到这个错误,
所以只需要重启一下docker就能得到恢复到正确的状态
###idea maven导入 netty 时,报以下错误:
maven Cannot resolve io.netty:netty-tcnative:1.1.33.Fork22
RocketMQ——源码报错Missing artifact io.netty:netty-tcnative:jar:${os.detected.classifier}:1.1.33.Fork22_东天里的冬天-CSDN博客 (RocketMQ错误)
解决办法,就是找到maven库 repository 找到 org > apach > rocketmq > rocketmq-remoting 找到4.2版本,好像是4.5没有这个错误;
在rocketmq-remoting的pom.xml文件中找到如下内容,并注释
<classifier>${os.detected.classifier}</classifier>
修改后如下:
<!--<classifier>${os.detected.classifier}</classifier>-->
按上面的文档操作即可;
IDEA中部分依赖包下载失败 提示cannot resolve plugin xxx
IDEA中部分依赖包下载失败 提示cannot resolve plugin xxx_yogima的博客-CSDN博客 (解决办法)
1)检查maven 配置,看对不对
2)检查镜像源,多加几个,(我这次就是这么 解决的,并把阿里放在最前面)
###docker部署 bladeX后,网段docker_blade_net 在宿主机,当前这个网段无法启动;
1)目前还没有找到办法
2)dev,prod,test 混合使用。出错了,一个一个容器去检查,得到log
###bladeX部署到docker 里后,重启动有的容器无法启动
1)使用 docker container ls -a 查看所有的容器,无PORT显示表示没有启动成功;
2)使用 docker container start [names]或[Container ID],启动,可以启动多个;
docker部署 bladeX 时,出错;
ERROR: for web-nginx Cannot start service web-nginx: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\\"/docker/nginx/web/nginx.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/8414852c95b7adb22ffcaad8a7e19137bcaaa4cb635cf8d39634d2bd5bf72c9a/merged\\\" at \\\"/var/lib/docker/overlay2/8414852c95b7adb22ffcaad8a7e19137bcaaa4cb635cf8d39634d2bd5bf72c9a/merged/etc/nginx/nginx.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
/docker/nginx/api/nginx.conf 挂载到已经创建的目录后,再将文件往在同个目录下,所以报错;/docker/nginx/api/nginx.conf/nginx.conf