项目经验-报错信息


项目经验-报错信息

Ngnix 报 504

location / {
    proxy_pass http://xxxx/;
    proxy_set_header Host $host:$server_port;
}

如上所示:项目配置使用 proxy_pass 进行转发。因此在 ngnix.conf 配置文件内修改对应的参数:

# 后端服务器连接超时时间(代理连接超时)默认 60s。
proxy_connect_timeout 1800s;
# 后端服务器数据回传时间(代理发送超时)默认值 60s。
proxy_send_timeout 1800s;
# 连接成功后,后端服务器响应时间(代理接收超时)默认值 60s。
proxy_read_timeout 1800s;

如果使用的 fastcgi_pass 进行的转发,修改如下对应参数:

# 后端服务器连接超时时间(代理连接超时)默认 60s。
fastcgi_connect_timeout 1800s;
# 后端服务器数据回传时间(代理发送超时)默认值 60s。
fastcgi_send_timeout 1800s;
# 连接成功后,后端服务器响应时间(代理接收超时)默认值 60s。
fastcgi_read_timeout 1800s;

启动 Redis 报:WARNING overcommit_memory is set to 0 Background save may fail under low memory condition

# 第一步:编辑配置文件
vim /etc/sysctl.conf
# 第二步:新增配置(最后一行)
vm.overcommit_memory=1
# 第三步:配置生效
sysctl -p

启动 Redis 报:WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will

# 第一步:先关闭 Redis
# 第二步:编辑配置文件
sudo vim /etc/rc.local
# 第三步:新增配置(最后一行)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 第四步:保存,退出,重启 Redis 即可

启动 Redis 报:WARNING The TCP backlog setting of 511 cannot be enforced

# 第一步:编辑配置文件
vim /etc/sysctl.conf
# 第二步:新增配置(最后一行)
net.core.somaxconn=1024
# 第三步:配置生效
sysctl -p

Nacos 使用报:ConnectException: no available server, currentServerAddr

  • 加入依赖
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>2.0.2</version>
</dependency>

微服务远程接口调用报:java.lang.IllegalArgumentException: method GET must not have a request body

  • 原因

微服务使用 FeignClient 做接口调用的时候,GET 请求无法解析对象参数。

  • 解决方法
  1. POST + @RequestBody。
  2. GET + @SpringQueryMap(注意 Spring Cloud 的版本,2.1.x 以下的不支持)。
  3. GET + @RequestParam(“xxx”)。

微服务项目启动报:The bean ‘xxx.FeignClientSpecification‘ could not be registered

  • 原因

多个 Feign 接口使用 @FeignClient 注解,调用同一名称的微服务时,发生异常。

  • 解决方法
  1. 将 Feign 接口合并。
  2. 配置文件中增加配置:spring.main.allow-bean-definition-overriding = true。
  3. 在 @FeignClient 注解上增加 contextId 属性,确保每个 Feign Client 的 contextId 唯一。
@FeignClient(name = "${file.url}",path = "/api/file",contextId = "fileCilent")
@FeignClient(name = "${client.url}", path = "/api/client", contextId = "userClient")

微服务项目启动报:Failed to load property source from location ‘classpath:/application.yml’

  • 加入配置
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>      
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

微服务项目启动报: Invalid bound statement (not found)

  • 原因

Mapper.java 和 Mapper.xml 文件都在 java 目录下,缺少对应的配置信息。

  • 解决办法

pom.xml 文件添加配置:

<build>
    <!-- 配置加载配置项信息-->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.json</include>
                <include>**/*.ftl</include>
            </includes>
        </resource>

        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

application.yml 文件添加配置

mybatis-plus.mapper-locations: classpath*:com/rhx/notice/mapper/xml/*Mapper.xml

文章作者: L Q
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 L Q !
  目录