有 Java 编程相关的问题?

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

java GET呼叫响应状态为200,然后立即给出500。

所以我花了很多时间在这个错误上:

几乎没有概述;基本上是通过一个简单的get调用来实现这种行为:

Mar 27, 2017 2:43:44 PM org.glassfish.jersey.filter.LoggingFilter log
INFO: 1 * Server responded with a response on thread 1530388690@qtp-1144748369-0
1 < 200
1 < Access-Control-Allow-Methods: GET POST, DELETE, PUT
1 < Access-Control-Allow-Origin: *
1 < Allow: OPTIONS
1 < Content-Type: application/json

Mar 27, 2017 2:43:45 PM org.glassfish.jersey.filter.LoggingFilter log
INFO: 2 * Server responded with a response on thread 1530388690@qtp-1144748369-0
2 < 500

正如您可能看到的,它的响应是正确的200,但由于某种原因,它随后就失败了。经过数小时的调试,我意识到如果我没有映射多对多或一对多映射的集合,那么响应就会失败

以下是我正在进行所有映射的示例:

@ManyToMany
@JoinTable(name="user_specializations",
joinColumns=@JoinColumn(name="user_id"), 
inverseJoinColumns=@JoinColumn(name="specialization_id")
)

private Collection<Specialization> specializationsList = new ArrayList<Specialization>();

@OneToMany(mappedBy = "user")
private Set<Research> researchSet = new HashSet<Research>();

当我映射这些时,其他方面的响应都失败了,所以可能不是因为我的响应没有序列化,但我甚至尝试了Gson和jackson注释,但没有任何效果。 有什么想法吗

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{email}/getUser")
public Response getUserByEmail (@PathParam("email") String email){
ObjectMapper objectMapper = new ObjectMapper();
userInformation = new UserInformation();
UserDataPojo userData = userInformation.getPrimaryUserInfo(email);
return Response.ok()
.entity(userData)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET POST, DELETE, PUT")
.allow("OPTIONS").build();
}

共 (0) 个答案