Bugs宝典
Last updated on May 7, 2024 pm
Git篇
git pull gitee
出现问题
You asked to pull from the remote ‘gitee’, but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
解决办法:
首先,主要是命令使用不规范导致,应该是gitee pull gitee(远程仓库别名) + master(分支名)
其次,针对以上错误,也可以编辑工作目录下的.git/config文件
文件内容,增加如下代码:
1 |
|
- Failed to connect to github.com port 443 after xxxxx ms: Timed out
网络错误问题,使用全局代理有时并不能解决
解决办法:配置远程仓库地址时,使用SSH以代替Https连接,亲测有效。
- github图床上传的图片显示失败
解决办法:
TODO:
ssh免密设置后,仍提示输入密码,报错如下:
[root@localhost ~]# ssh -vvv XXX.XX.X.XXX
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 51: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXX.XX.X.XXX [XXX.XX.X.XXX] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug3: Incorrect RSA1 identifier
debug3: Could not load “/root/.ssh/id_rsa” as a RSA1 public key
debug1: identity file /root/.ssh/id_rsa type 1
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.4
debug1: match: OpenSSH_6.4 pat OpenSSH*想必看到这里,但凡想想,应该就会想,难道是密钥的问题?密钥不对?或者就是权限问题?
🆗,回想一下我们学习Linux的时候,讲过一个SELinux,不知是否还有印象。那么什么是SELinux呢?
安全增强式 Linux,即
SELinux
(Security-Enhanced Linux)是一个Linux
内核的安全模块,其提供了访问控制安全策略机制,包括了强制访问控制(Mandatory Access Control,MAC)。解决办法:
1
2# 查看当前模式。如果为disabled即是关闭状态,我们需要讲安全模式打开
$ getenforce1
2# vi /etc/selinux/config打开selinux配置文件
$ vi /etc/selinux/config
参考链接:https://blog.csdn.net/u012026446/article/details/81318188
项目篇
- 粗心大意导致的错误(前后对比)
1
2
3
4
5
6
7
8
9
10
11
<CreateModal
columns={columns}
onCancel={() => {
// 注意这里
handleUpdateModalOpen(false);
}}
onSubmit={(values) => {
handleAdd(values);
}}
visible={createModalOpen}
/>
1
2
3
4
5
6
7
8
9
10
<CreateModal
columns={columns}
onCancel={() => {
handleModalOpen(false);
}}
onSubmit={(values) => {
handleAdd(values);
}}
visible={createModalOpen}
/>
终于又碰到了一个bugssss!!!头疼得很!–controller类更改运行不生效
发生在Spring Boot API项目的模拟接口项目:更改controller类后,发现重新运行之后页面没有改变,更改无效,此时需要对maven重新打jar包,更改才会生效,ChatGPT说是因为热部署的问题。
bug缘由:早在我把模拟接口项目整个粘贴到后端项目中时就已经存在bug了,之前没有发现,尝试把这个项目单独拎出来的话没问题。
解决方法:
- 我先试试是不是maven的module没有配置好(因为是直接把模拟接口项目直接粘贴到后端项目中了)
- 后续整合网管业务的时候,遇到了项目包名不一致的问题,然后在包名重命名中出现了n个问题,最后迫不得已将项目重构了,然后在项目中直接创建module是没有问题的,因此证实了上述猜想中的module没有配置好!
当Springboot项目中引入了Mabatis,但是没有进行配置,会导致项目运行的时候报错:找不到配置,如图:
- 解决方法:在启动类上添加一个排除数据库配置的注解:
工具篇
nvm
nvm 突然报错,包括npm安装依赖也会出现错误,如下图所示:
我猜测应该是网络或者配置问题,果真,npm.taobao.org 的 HTTPS 证书已经在2024年1月22日过期,所以需要切换镜像源到
1
2node_mirror: http://npmmirror.com/mirrors/node/
npm_mirror: http://registry.npmmirror.com/mirrors/npm/
HuTool
1 |
|
解决方法:
待补充!!!
Nacos
找不到相关Service服务
- 消费者与提供者项目包名不一致导致找不到service服务
遇到一个
nocos
小BUG:Dubbo整合nocos的时候,提供者与消费者的包名不一样,这时,提供者将接口的信息注册到nacos文档时,用到的是provider的包名路径,如果出现消费者的包名路径与提供者的包名不同的时候,这时消费者就会报错找不到提供者的Service服务,如图:
端口被占用
netstat -ano | findstr 8848
taskkill /pid 1244 /f
maven
问题1:
Spring Boot项目涉及到多个模块时,应该怎么办?
方案一:
类似于maven项目的多模块编译
方案二:
将pom文件设置为maven项目
问题2:
自己开发SDK
时,pom文件中忘记去掉<build></build>
标签时,当使用maven执行install命令时,maven会报错:没有可执行的main。
如图:
问题3:
想用maven的多模块编译,父模块用<models>
子模块用<parent>
,用下面的依赖配置,是没问题的,
1 |
|
当我把parent换成父类时,会报错:
- 解决方法:
- set spring.main.web-application-type=reactive
spring.main.web-application-type=reactive
是针对 Spring Boot 2.x版本引入的一个配置属性,用于指定应用程序的类型。它有两个可能的值:servlet
(默认值)和reactive
。当将
spring.main.web-application-type
设置为reactive
时,您的应用程序将使用反应式编程模型。这意味着您的应用程序将使用 WebFlux 框架,而不是传统的 Servlet 框架。使用反应式编程模型可以提供更好的性能和可扩展性,因为它使用了非阻塞的 I/O 和事件驱动的编程模型。这种模型特别适用于高并发和异步处理场景。
要使用反应式编程模型,您需要相应地更新您的应用程序代码,以便使用 WebFlux 相关的的基础设施和 API。例如,您需要使用
@Controller
替换@ControllerAdvice
,并使用ServerWebExchange
对象访问 HTTP 请求和响应。总之,将
spring.main.web-application-type
设置为reactive
将使您的应用程序使用 WebFlux 框架,以获得更好的性能和可扩展性。但请注意,您需要对应用程序代码进行相应的更改,以适应反应式编程模型。要设置
spring.main.web-application-type
为reactive
,您需要在应用的配置文件application.yml
或application.properties
中添加以下配置1:
1
2
3
spring:
main:
web-application-type: reactive这样,您告诉 Spring Boot 应用程序使用响应式的 Web 应用类型。同时,请注意,您需要相应地更新您的应用程序代码,以使用 WebFlux 相关的基础设施和 API,例如使用
@Controller
替换@ControllerAdvice
,并使用ServerWebExchange
对象访问 HTTP 请求和响应1。