NotSupportedException:请求方法'PUT'不支持。为什么?

时间:2020-05-14 19:05:43

标签: java spring-boot jpa exception

有一个AdminService类,它继承自UserServiceUserService有一个changePassword方法。因此,当我输入有效的login时,此方法可以正常工作,但是一旦输入无效的login,我的错误处理程序将无法正常工作。为什么?

除了if构造之外,我还尝试了try catch,但结果是一个。

我正在使用Spring MVC + REST + Spring Security + Jpa + Hibernate + PostgreSQL编写项目

UserService:

@Service
public class UserService implements UserDetailsService {


    // Fields
    //
    private UserRepository userRepository;

    private PasswordEncoder passwordEncoder;


    // Injects are here
    //
    @Autowired
    public void setUserRepository(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Autowired
    public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
        this.passwordEncoder = passwordEncoder;
    }


    // Методы
    //
    // 
    public User changePassword(String login, String newPass) throws UsernameNotFoundException {
        User user = getUserDataByLogin(login);
        if (user == null) {
            throw new UsernameNotFoundException("not found" + login);
        } else {
            user.setPassword(passwordEncoder.encode(newPass));
            return userRepository.save(user);
        }
    }

AdminController:

@PutMapping("/change/password")
    User changePassword(@RequestParam String login, @RequestParam String newPass) {
        return userService.changePassword(login, newPass);
    }

UserRepo:

public interface UserRepository extends JpaRepository<User, Long> {

    // Найти пользователя по Login (логин универсален)
    User getByLogin(String login);

}
2020-05-14 22:25:30.094  WARN 21000 --- [nio-8080-exec-8] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported]

1 个答案:

答案 0 :(得分:0)

您正在调用

if (user.equals(null)) {
        throw new UsernameNotFoundException("not found" + login);
    } 

当user为null时,因此您尝试访问null对象中的equals时,抛出此异常,以比较null是否更好,方法是:

    if(user == null) {
     //
    }
相关问题