我正在MVC REST用Spring Boot和编写一个应用程序Hibernate。我决定DTO使用MAPSTRUCT. 看来我按照指南做了一切,但出现了错误。有什么问题,我无法理解。论坛和google上的信息很少。
PS 起初我以为问题出在Lombok,所以我删除Lombok并手动分配getters / setters。然后问题并没有解决。我在Drink课堂上和DrinkDTO我规定的课程中都参加了getters / setters。但这仍然没有帮助。
喝:
@Entity
@Table(name = "drink", schema = "public")
public class Drink {
public Drink() { // Constructor for Hibernate
}
// Fields
//
private @Id
@GeneratedValue
Long id;
@Column(name = "name")
private String name;
@Column(name = "price")
private float price;
@Column(name = "about")
private String about;
@Column(name = …Run Code Online (Sandbox Code Playgroud) 有一个Spring-MVC项目,其中有三种类型的用户:Customer、Admin、Cook。所有这些都是从类继承的User。角色是在没有 的情况下创建的ENUM,只需通过静态字符串常量(在User类中显示)。添加后Spring Security,授权成功,但是当我尝试执行其中一个类(Customer、Admin 或 Cook)的方法时,它给出了json 错误 403:
{
"timestamp": "2020-05-08T19:48:43.999+0000",
"status": 403,
"error": "Forbidden",
"message": "Forbidden",
"path": "/admin/cooks"
}
Run Code Online (Sandbox Code Playgroud)
请告诉我我做错了什么。错在哪里。
用户:
package com.tinychiefdelights.model;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.Collection;
import java.util.Collections;
@ApiModel
@Data
@Entity
@Table(name = "pg_user", schema = "public")
public class User implements UserDetails {
// Roles
//
public …Run Code Online (Sandbox Code Playgroud) 我无法理解问题是什么,为什么他发誓却找不到locale en。路径或boundle名称有问题吗?
legacy15年前写的项目,以前在 Ant,现在翻译成Gradle,出现这个错误。它建立在Ant没有问题的基础上。
PS 我在类中分别标记了错误所指的行。
错误:
java.lang.ExceptionInInitializerError
at org.opensourcephysics.controls.OSPLog.<init>(OSPLog.java:937)
at org.opensourcephysics.controls.OSPLog.getOSPLog(OSPLog.java:124)
at org.opensourcephysics.cabrillo.tracker.Tracker.loadPreferences(Tracker.java:1391)
at org.opensourcephysics.cabrillo.tracker.Tracker.<clinit>(Tracker.java:251)
Caused by: java.util.MissingResourceException: Can't find bundle for base name org.opensourcephysics.resources.controls.controls_res, locale en
Caused by: java.util.MissingResourceException: Can't find bundle for base name org.opensourcephysics.resources.controls.controls_res, locale en
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)
at org.opensourcephysics.controls.ControlsRes.<clinit>(ControlsRes.java:55)
... 4 more
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:138)
at org.opensourcephysics.resources.controls.controls_res.<init>(controls_res.java:32)
at org.opensourcephysics.resources.controls.controls_res.<init>(controls_res.java:23)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) …Run Code Online (Sandbox Code Playgroud) 有一个Spring-MVC应用程序。在控制器中,当返回方法的结果时,我通过ResponseEntity<>. 成功时,我返回(200法规)OK-方法。但是在创建某些东西时,我想返回CREATED-method ( 201status )。我只是不明白URL在通过CREATED. 如何实施?
现在我有这样的实现:
@PostMapping("/create/dish")
ResponseEntity<Dish> createDish(@Valid @RequestBody DishDTO dishDTO) {
return ResponseEntity.ok(cookService.createDish(dishDTO.getDishName(), dishDTO.getAboutDish(), dishDTO.getDishType(),
dishDTO.getCookingTime(), dishDTO.getWeight(),
dishDTO.getDishCost(), dishDTO.getCooksId()));
}
Run Code Online (Sandbox Code Playgroud)
我想像这样重新制作它以使其工作(现在它不起作用):
@PostMapping("/create/dish")
ResponseEntity<Dish> createDish(@Valid @RequestBody DishDTO dishDTO) {
return ResponseEntity.created(cookService.createDish(dishDTO.getDishName(), dishDTO.getAboutDish(), dishDTO.getDishType(),
dishDTO.getCookingTime(), dishDTO.getWeight(),
dishDTO.getDishCost(), dishDTO.getCooksId()));
}
Run Code Online (Sandbox Code Playgroud)
PS我根本没有前端。全部通过 Swagger 或 PostMan。