有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HttpMediaTypeNotSupportedException在基本Spring引导CRUD中

我开始学习Spring Boot,我正在开发一个连接到MySQL数据库的基本CRUD,我正在和Postman一起测试这个应用。虽然“getByID”或“getList”等函数已经在运行,但我发现“Save”函数存在一些问题,因为我遇到了一个我不知道如何解决的HttpMediaTypeNotSupportedException

这是我的主要代码

应用程序:

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

控制器:

@RestController  
@CrossOrigin(origins="http://localhost:4200")  
@RequestMapping(value="/api")  
public class Controller {

    @Autowired  
    private PruebaService pruebaservice;  
      
    @PostMapping("save-prueba")  
    public boolean savePrueba(@RequestBody Prueba prueba) {  
         return pruebaservice.savePrueba(prueba);  
          
    }  
      
    //Other methods for the CRUD
}

服务:

@Service
@Transactional
public class PruebaService {

    @Autowired  
    private PruebaRepository pruebadao;  

    public boolean savePrueba(Prueba prueba) {
        return pruebadao.savePrueba(prueba);  
    }

    //Other methods for the CRUD
}

存储库:

@Repository
public class PruebaRepository {

    @Autowired
    private SessionFactory sessionFactory;

    public boolean savePrueba(Prueba prueba) {
        boolean status = false;
        try {
            sessionFactory.openSession().save(prueba);
            status = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return status;
    }

    //Other methods for the CRUD
}

型号:

@Entity  
@Table(name="PRUEBA")  
public class Prueba {  
    
    @Id  
    @GeneratedValue(strategy=GenerationType.IDENTITY)  
    private int idprueba;  
    
    private String columna;
    
    //Getters and setters  
      
}  

最后这是我用来测试的邮递员: enter image description here

如果有人能帮助我,我将不胜感激。提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    控制器类的更改如下所示

    @RestController  
    @CrossOrigin(origins="http://localhost:4200")  
    @RequestMapping(value="/api")  
    public class Controller {
    
        @Autowired  
        private PruebaService pruebaservice;  
          
        @PostMapping(value = "/save-prueba", produces = MediaType.APPLICATION_JSON_VALUE)  
        public boolean savePrueba(@RequestBody Prueba prueba) {  
             return pruebaservice.savePrueba(prueba);  
              
        }  
          
        //Other methods for the CRUD
    }
    

    在Postman中,选择raw并选择type JSON,然后进行如下测试 enter image description here

  2. # 2 楼答案

    邮递员。在Body下,选择raw并从出现的下拉菜单中选择JSON。然后编写作为请求主体的JSON。不能将form-datax-www-form-urlencoded与@RequestBody一起使用,它们在绑定为@modeldattribute时使用