Springboot项目配置jar外部静态文件
spring.resources.static-locations=file:/Users/gaojiaqi/Desktop/test,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
Swagger
java.lang.NumberFormatException: For input string: ""
Swagger的@ApiModelProperty标记Integer属性时,需要指定example值,example默认值是空字符串,如未指定则会报这个问题。
java.sql.SQLSyntaxErrorException: Table 'cds.hibernate_sequence' doesn't exist
使用@GeneratedValue后
解决方法:
spring.jpa.hibernate.use-new-id-generator-mappings=false 或 @GeneratedValue(strategy = GenerationType.IDENTITY)
SpringCloud
Gateway 不能使用 web MVC框架
Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.
spring-boot-starter-web与spring-cloud-starter-gateway存在jar包冲突
Spring Cloud Gateway 是使用 netty+webflux 实现因此不需要再引入 web 模块。
Feign 每个参数需要指定PathVariable
java.lang.IllegalStateException: PathVariable annotation was empty on param 0.
使用Spring Cloud Feign 的时候,如果参数中带有@PathVariable形式的参数,则要用value=""标明对应的参数,否则会抛出IllegalStateException异常
如:@PathVariable(value = "groupType") String groupType
java.lang.IllegalArgumentException: Body parameter 0 was null
Spring Cloud Feign 远程调用需要携带参数,但实际上没没有携带
Gateway requestBody 只允许读取一次
java.lang.IllegalStateException: Only one connection receive subscriber allowed.
Spring Cloud Gateway 中,requestBody只允许读取一次,解决方法就是读取后需要在写入一个request。
Dubbo
Dubbo Qos 22222
ERROR org.apache.dubbo.qos.server.Server (Server.java:103) - [DUBBO] qos-server can not bind localhost:22222, dubbo version: 2.7.3, current host: 192.168.0.1
Qos=Quality of Service,qos是Dubbo的在线运维命令,可以对服务进行动态的配置、控制及查询,Dubboo2.5.8新版本重构了telnet(telnet是从Dubbo2.0.5开始支持的)模块,提供了新的telnet命令支持,新版本的telnet端口与dubbo协议的端口是不同的端口,默认为22222,可以通过配置文件dubbo.properties修改。telnet 模块现在同时支持 http 协议和 telnet 协议,方便各种情况的使用。
在同时启动多个dubbo应用的时候,会报这个错误。
节点网络连接问题
None of the configured nodes are available: []
RocketMQ
CODE: 14 DESC: service not available now, maybe disk full, CL: 0.96 CQ: 0.96
RocketMQ磁盘满,需清理磁盘
数据库相关
mysql排序稳定性问题
Timestamp 数据异常
Cause: java.sql.SQLException: Zero date value prohibited
com.mysql.cj.core.exceptions.DataReadException: Zero date value prohibited
数据时区错误,由于数据库字段timestamp类型有时间0000-00-00 00:00:00,修改为正常时间即可。
timestamp的默认值:CURRENT_TIMESTAMP(插入时个更新时间)、ON UPDATE CURRENT_TIMESTAMP(仅在更新时设置时间,插入时赋值)、CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP (创建和修改时都修改此值)
Cause: java.sql.SQLException: Incorrect DECIMAL value: '0' for column '' at row -1
; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366]; Incorrect DECIMAL value: '0' for column '' at row -1; nested exception is java.sql.SQLException: Incorrect DECIMAL value: '0' for column '' at row -1
根本解法:对数据输入严格校验,避免出现cast转换值为null的情况,或者对于null的情况从逻辑上进行控制
Cause: org.mybatis.spring.MyBatisSystemException: There is no getter for property named 'projectId' in 'class java.lang.String'
<select id="list" parameterType="java.lang.String" resultType="java.lang.String">
select username from user
<if test="id != null">
where id=#{id}
</select>
系统的连接端口耗尽
Cause: java.net.NoRouteToHostException: Cannot assign requested address.
浏览器Long长度大于17会精度丢失,解决办法是后台将Long转为String,原因是js number的局限
Http ResponseHeader 中的自定义属性,如果浏览器请求抓包可以看到,但是js中获取不到,则需要检查跨域配置
解决: 响应头Access-Control-Expose-Headers,配置自定义属性,然后就可以获取到了。
问题请求:angular1.6 $http.post
原文:www.it1352.com/886056.html
参考:跨域资源共享 CORS 详解
在react中,setState是异步操作,赋值后不能马上生效。
The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'.
当看到此错误时注意,当前端请求配置credentials: "include"时,后端需要配置"Access-Control-Allow-Credentials"为true,这样才能使带credentials的CORS请求成功。
SpringBoot2.0下对跨域的处理方式可以为使用@CrossOrigin注解或者编写配置类实现WebMvcConfigurer接口的addCorsMappings方法。
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("POST","GET")
.allowedOrigins("*")
.allowCredentials(true);
React Eslint 报错与警告
Do not use setState in componentDidMount
componentDidMount 执行是在DOM渲染完成后,在这里面使用setState会触发重绘,相当于进行了两次渲染,因此建议在constructor或者componentWillMount中把准备工作做好。当然在componentDidMount 周期异步获取数据并通过setState赋值是正确逻辑。
Arrow function should not return assignment.
<div ref={(el) => { this.myCustomEl = el }} />
在使用箭头函数的时候,不应当返回赋值语句。
JSX props should not use arrow functions
A bind call or arrow function in a JSX prop will create a brand new function on every single render. This is bad for performance, as it may cause unnecessary re-renders if a brand new function is passed as a prop to a component that uses reference equality check on the prop to determine if it should update.
github.com/yannickcr/e…
Expected to return a value in arrow function array-callback-return
res操作可能存在异步调用
问题描述:Cannot set headers after they are sent to the client
发生了两次res的返回,原因可能是因为存在异步调用,异步后又尝试使用res.send,将异步方法改为同步可以解决这个问题。
Linux及生产环境问题
磁盘没有空间
磁盘没有空间:Error: ENOSPC: no space left on device, write
解决方案:增大磁盘空间或删除迁移没用文件,如日志文件
Git问题
两个分支历史不匹配,无法合并
Could Not Merge origin/sprint2-mjk: refusing to merge unrelated histories
解决办法:git merge origin/sprint2-mjk --allow-unrelated-histories
Docker问题
resource is denied,需要登录harbor
denied: requested access to the resource is denied
解决办法: docker login harbor−−usernameadmin−−passwordharbor_password