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
    <!--错误用法,正确用法为 _parameter-->
    <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 harborusernameadminpasswordharbor --username admin --password

  • 字节的一个小问题 npm 和 yarn不一样吗?
  •