You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot REST API始终返回404 Not Found错误排查求助

Spring Boot OTP发送接口404 Not Found问题求助

我开发了一个用于向指定邮箱发送OTP验证码的Spring Boot REST API,但调用接口/api/v1/otp/sendOTP时始终返回404 Not Found错误,错误响应示例如下:

{
  "timestamp": "2024-02-12T11:50:31.545+00:00",
  "status": 404,
  "error": "Not Found",
  "path": "/api/v1/otp/sendOTP"
}

以下是我的OTPController类代码:

package com.example.chatappAPI10.Controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.chatappAPI10.DTO.OTPDetails;
import com.example.chatappAPI10.Service.SendOTPNumber;

@RestController
@RequestMapping(value = "api/v1/otp")
public class OTPController {
    @Autowired
    private SendOTPNumber sendOTPNumber;
    @SuppressWarnings("rawtypes")
    @PostMapping(value = "/sendOTP")
    public ResponseEntity sendOTP(@RequestBody OTPDetails otpDetails) {
        System.out.println("otpDetails.getToMail()");
        return sendOTPNumber.sendOTPNumber();
    }

}

以及SendOTPNumber服务类代码:

package com.example.chatappAPI10.Service;

import java.util.Random;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
import com.example.chatappAPI10.DTO.OTPDetails;
import com.example.chatappAPI10.DTO.ResponseDTO;
@Service
public class SendOTPNumber {
    @Autowired
    private JavaMailSender javaMailSender;
    @Autowired
    private ResponseDTO responseDTO;
    @Autowired
    private OTPDetails otpDetails;

    private void setRandomOTP() {
        Random random = new Random();
        int randomNumber = random.nextInt(9000) + 1000;
        otpDetails.setOtpNumber(String.valueOf(randomNumber));
    }

    private void setFromEmail() {
        otpDetails.setFromEmail("ketawalagedhanusha@gmail.com");
    }

    private void setSubject() {
        String subjectOfEmail = "Hello Chat up! OTP verification";
        otpDetails.setMailSubject(subjectOfEmail);
    }

    @SuppressWarnings("rawtypes")
    public ResponseEntity sendOTPNumber() {
        try {
            SimpleMailMessage otSimpleMailMessage = new SimpleMailMessage();
            setFromEmail();
            setRandomOTP();
            setSubject();
            otSimpleMailMessage.setFrom(otpDetails.getFromEmail());
            otSimpleMailMessage.setSubject(otpDetails.getMailSubject());
            otSimpleMailMessage.setText(otpDetails.getOtpNumber());
            otSimpleMailMessage.setTo(otpDetails.getToMail());
            javaMailSender.send(otSimpleMailMessage);
            responseDTO.setCode("200");
            responseDTO.setMessage("Success");
            responseDTO.setOtpNumber(otpDetails.getOtpNumber());
            return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
        } catch (Exception e) {
            responseDTO.setCode("404");
            responseDTO.setMessage(e.getMessage());
            return new ResponseEntity<>(responseDTO, HttpStatus.BAD_REQUEST);
        }
    }
}

我认为DTO类与当前问题无关,所以未提供。我已尝试过Stack Overflow上的相关解决方案,但问题仍未解决,希望得到帮助。


内容的提问来源于stack exchange,提问作者K.D.Dilshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:56:18