问题排查-日常开发-遇到的异常

1.连接mongodb数据报的异常

首先检查是不是用户名和密码的错误参考

Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='root', source='admin', password=<hidden>, mechanismProperties={}}}, caused by {com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed" }}}]

2.在读取yml文件的时候报错。不能去取yml配置文件。

java.nio.charset.MalformedInputException: Input length = 1
	at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
	at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:781)

解决方法:把yml文件中的中文注解删除,看是否还报错 ,是不是编码的问题。如果是修改编码全部为UTF-8.包括右下角的也给修改了、

3.java.net.BindException: Address already in use: bind

参考

4.使用注解将类加入到spring容器中,但是该类没有变色。

解决:查看自己的引导类有没有写,写了的话,看需不需要额外添加包的扫描。
在这里插入图片描述

5.方法请求的时候直接报错RFC 7230 and RFC 3986

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

解决方法:
将Get请求变成Post请求,并且在请求参数的位置加上@RequestBody注解
参考文章,点击这里
参考文章2,点击这里
2.在springboot工程中增加一个tomcat 配置,或者将webServerFactory方法加入到springboot启动类中,配置文件代码如下:


/**
 * @author: zw
 * @create: 2019-06-27 11:19
 **/
@Configuration
public class TomcatConfig {

    @Bean
    public TomcatServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((Connector connector) -> {
                connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
                connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
        });
        return factory;
    }
}
在方法中我们加入了 \"<>[\\]^`{|}这些符号,问题就这么完美的解决了

6.在Mybatis进行查询的时候,报错数据库表出现错误

参考文章,点击这里

很有可能是驱动的问题,下面是正确的驱动

url: jdbc:mysql://192.168.31.116:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8

7.Mybatis映射失败

检查实体类的get/set方法是否书写了,添加@Data

8.java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String

原工程中配置的是mybatis-3.2.8, 而我测试工程中用的是mybatis-3.3.0.后来在网上找了一下才知道, 原来这是mybatis 3.3.0中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串’'进行对比判断则会引发异常. 所以在上面的代码中去该该判断, 只保留非空判断就正常了

<if test="createTime != null and createTime !='' " >
  date(create_time) = date(#{createTime,jdbcType=TIMESTAMP})
</if>

改为

<if test="createTime != null">
  date(create_time) = date(#{createTime,jdbcType=TIMESTAMP})
</if>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
排查 "Back-off restarting failed container" 的问题,可以按照以下步骤进行: 1. 查看容器的日志:使用 `kubectl logs` 命令来查看容器的日志,例如:`kubectl logs <pod-name> -c <container-name>`。这将显示容器的日志输出,可以检查是否有任何错误或异常。 2. 检查容器状态:使用 `kubectl describe pod <pod-name>` 命令来获取有关容器的详细信息,包括容器的当前状态和事件。查看事件列表以获取关于容器重启失败的任何警告或错误消息。 3. 检查资源限制:确保容器的资源限制设置合理。如果容器请求了过多的资源或超过节点的可用资源限制,可能导致容器启动失败并被重启。 4. 检查容器配置文件:检查容器的配置文件(例如 Deployment 或 StatefulSet)是否正确配置了容器的命令、环境变量、挂载卷等。确保容器的配置文件中没有语法错误或其他配置问题。 5. 检查镜像可用性:确保使用的容器镜像可用,并且在拉取镜像时没有出现网络问题或权限问题。可以尝试手动拉取镜像并验证其可用性。 6. 检查依赖项:如果容器依赖于其他服务或资源,确保这些依赖项可用并正常运行。例如,数据库是否正常启动并可访问。 7. 检查容器退出代码:如果容器在启动时即退出,可以查看容器的退出代码来获取更多信息。退出代码通常表示容器在启动过程中遇到的错误。 8. 检查节点资源:如果节点上的资源使用率过高,可能会导致容器启动失败。确保节点上的资源(例如 CPU、内存)足够满足容器的需求。 通过逐步检查以上步骤,您可能能够找到导致容器重启失败的问题,并采取相应的措施来解决它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值