好的,所以我使用jaxb从我的xsd文件中学习了我的java类。我还将以下代码编写为接收请求(XML)的端点。现在我想将请求读入我的java对象,然后我可以使用它们插入到我的数据库中。这是我应该实现的正确方法吗?如果是这样,它是如何完成的?谢谢
@POST
@Consumes("application/xml")
@Produces("application/xml")
public String registerPost(@Context HttpServletRequest req) {
try {
//update DB
} catch (DatabaseException e) {
return "Fail";
}
}
答案 0 :(得分:1)
希望这有点帮助:
您的jax-rs端点可以直接接受您的JAXB类(假设您的服务器已配置了JAXB提供程序)。它将为您处理从传入文本到适当的Java对象的转换。
您并不特别需要Servlet请求对象。
您可能需要先将JAXB实体转换为JPA实体,然后才能将它们保存到数据库中(或将JAXB和JPA注释添加到相同的类中)。
您的返回类型应该是text / plain而不是XML(或者您应该返回XML)。
@POST
@Consumes("application/xml")
@Produces("text/plain")
public String registerPost(MyEntityClass payload) {
try {
//update DB
myService.save(payload);
return "success";
} catch (DatabaseException e) {
return "Fail";
}
}