登陆界面编写,断点测试时报错,tomcat日志显示报错为:
java.lang.InterruptedException: sleep interrupted
at java.base/java.lang.Thread.sleep(Native Method)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
断点如下
public class AccountServiceImpl implements AccountService {
@Autowired
private SystemAdminMapper systemAdminMapper;
@Override
public AccountDto login(AccountForm accountForm) {
AccountDto dto =new AccountDto<>();
//判断用户类型
switch (accountForm.getType()){
case "systemAdmin":
SystemAdmin systemAdmin = this.systemAdminMapper.findByUsername(accountForm.getUsername());
//判断用户名是否正确
**断点: ** if(systemAdmin == null){
dto.setCode(-1);
} else {
//判断密码是否正确
if (!systemAdmin.getPassword().equals(accountForm.getPassword())){
dto.setCode(-2);
} else {
dto.setCode(0);
dto.setAdmin(systemAdmin);
}
}
break;
case "drugAdmin":
break;
}
return dto;
}
}
代码不全吧
这个异常是因为在执行线程时,线程被中断了,导致了sleep方法抛出了InterruptedException异常。在你的代码中,这个异常是由于连接池中的线程被中断,而连接池中的线程通常是由连接池的实现框架提供的,所以你需要检查连接池的实现,看看是否有中断线程的操作,以及是否需要在代码中处理InterruptedException异常。
可以尝试在代码中捕捉InterruptedException异常,并在catch块中处理,例如打印日志,或者重新抛出异常。示例代码如下:
try {
// 执行一些需要时间的操作
Thread.sleep(1000);
} catch (InterruptedException e) {
// 处理InterruptedException异常
log.error("Thread interrupted while sleeping", e);
Thread.currentThread().interrupt(); // 重新中断线程
}
另外,如果连接池的实现框架不支持中断线程,也可以通过设置线程的中断状态来实现线程的中断,例如:
Thread.currentThread().interrupt();