- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我像这样定义UserController
和UserRepository
和User
UserController.java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.codec.Hex;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.zusn.domain.User;
import com.zusn.repository.UserRepository;
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserRepository userRepository;
@RequestMapping(value = "/create", method = RequestMethod.POST)
public User createUser(@RequestBody User newUesr) throws NoSuchAlgorithmException{
User user = userRepository.findByUidAndDevice(newUesr.getUid(), newUesr.getDevice());
if(user == null){
MessageDigest md = MessageDigest.getInstance("SHA");
Long now = System.nanoTime();
md.update(now.byteValue());
String random = RandomStringUtils.randomAlphabetic(32);
md.update(random.getBytes());
newUesr.setConsumerKey(String.valueOf(Hex.encode(md.digest())));
return userRepository.save(newUesr);
}else{
return user;
}
}
}
UserRepository.java
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.zusn.domain.Devices;
import com.zusn.domain.Providers;
import com.zusn.domain.User;
@Repository
public interface UserRepository extends JpaRepository<User, Long>{
/**
*
* @param uid UID
* @param provider Profider ex) twitter, google+, facebook
* @return User
*/
public User findByUidAndProvider(@Param("uid") String uid, @Param("provider") Providers provider);
/**
*
* @param uid UID
* @param devices Device ex) iOS, Android
* @return User
*/
public User findByUidAndDevice(@Param("uid")String uid, @Param("device") Devices device);
}
用户.java
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long id;
@Column(name = "uid", nullable = false)
private String uid;
@Column(name = "provider")
private Providers provider;
@Column(name = "device", nullable = false)
private Devices device;
@Column(name = "consumer_key", nullable = false, unique = true)
private String consumerKey;
@OneToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY)
private Profile profile;
public User() {
super();
}
public User(String uid, Providers providers, String consumerKey) {
super();
this.uid = uid;
this.provider = providers;
this.consumerKey = consumerKey;
}
public String getConsumerKey() {
return consumerKey;
}
public void setConsumerKey(String consumerKey) {
this.consumerKey = consumerKey;
}
public User(Providers provider){
this.provider=provider;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public Providers getProvider() {
return provider;
}
public void setProvider(Providers provider) {
this.provider = provider;
}
public Profile getProfile() {
return profile;
}
public void setProfile(Profile profile) {
this.profile = profile;
}
public Devices getDevice() {
return device;
}
public void setDevice(Devices device) {
this.device = device;
}
}
当 User 不存在时,即处理第一个 if
语句时,此方法返回新的 User
对象。但是当User已经存在时,它返回状态码500。
然后当它返回 500 错误时它没有打印堆栈跟踪。
所以我不确定为什么它返回 500 错误。请告诉我这段代码有什么问题以及为什么它返回 500 错误。
最佳答案
如果没有堆栈跟踪,很难猜测问题所在。也许@NoOne是对的,但也许你在旧开发留下的数据库中有一个独特的约束。
如果您没有看到堆栈跟踪客户端,您可以输入 this snipped获取堆栈跟踪服务器端。因为 5xx 错误只是告诉我们这一点。服务器出错。
关于java - RestController 返回 500 错误,没有堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568992/
关于 SpringBoot 应用程序的小问题,以及如何获取用 @RestController 注释的类列表请。 我有一个简单的 SpringBoot 应用程序,其中有几个我自己的 @RestContr
我正在使用 spring 4.2 创建一些restfull web 服务。 但我们意识到,当用户输入错误的非强制性 @RequestParam 之一时,我们没有得到他传递的参数未知的错误。 就像我们有
我正在尝试向服务器发送一个 http 帖子,但我从我的 Controller 收到一个格式错误的 url 异常 Controller 代码 public static final String RES
我有一个抽象类PluginTemplate,由3个子类继承 PluginTemplateA、PluginTemplateB、PluginTemplateC。 我有一个其他类,其中有一个包含 Plugi
是否可以在Java配置(带有@Configuration注释的类)单独定义一个Spring RestController(@RestController注释的类)在标有 @Bean 的方法中)? 我有
我在使用 REST 服务器和 REST 客户端的应用程序中使用 Spring Boot。当我让人们选择 URL 映射时,就会出现问题,因为那时我需要使用此 URL 映射动态创建 REST Contro
我一直在尝试扩展这个 Spring/Hibernate/JPA sample code on Github 虽然我让它工作正常,但我正在尝试添加一个新的@RestController 以获取所有 sh
我正在使用 spring-rest 创建一些 @RestController servlet。该应用程序不在网络服务器上运行,而是作为带有嵌入式 tomcat 的简单命令行工具运行。 它们中的大多数应
是否有可能在 Springboot 中有两个不同的 @RestControllers 使用不同的 MappingJackson2HttpMessageConverter ? ...还是 Mapping
我正在尝试使用新的 Spring 4.0 @RestController 从 Controller 返回一个简单的文本响应: @RestController @RequestMapping(value
考虑以下代码: @RestController @RequestMapping("/timeout") public class TestController { @Autowired
嗨,我的示例中有一个简单的 RestController: @RestController public class PersonController { @RequestMapping(na
tl; dr一个RestController如果在Docker容器中运行,则可以正确回答,而另一个则不能。 该服务有两个API alive @CrossOrigin(origins = "*", ma
我知道有很多question s 涵盖了该主题,但我不知道如何实现以下要求。 我想上传文件列表,每个文件都包含一些额外信息。在 Java 世界中,这意味着以下内容: @NoArgsConstructo
是否可以通过编程方式控制@RestController来启用或禁用它?我不想只在每个 @RequestMapping 方法中编写代码来执行某种 if (!enabled) { return 404Ex
背景 这是@RestController中定义的方法,它从磁盘读取文件然后流回。 @RequestMapping(value = "/bill", method = RequestMethod.GET
我无法将完整的对象序列化为 Java API Rest。某些属性未在响应方法中返回。 我有一个像这样的对象: public class Localization { private Long
我有一个 Controller : @RestController @RequestMapping(value = UserRestController.REST_URL, produces = Me
我正在 Spring 中设置 RestController,但有一个不明确的映射问题。我不明白最后两个方法有什么歧义,因为请求映射和方法名称不同。当我从最后一个方法中删除方法规范时,问题就不再存在了。
我正在使用 Spring Boot 和 @RestController 以及 Java 8 实现 REST API。其中一个 Controller 方法需要调用另一个第 3 方 REST API 服务
我是一名优秀的程序员,十分优秀!