[英]JTA persist does not work with REST POST service
I have a very weird problem with Jersey REST services. 我对Jersey REST服务有一个很奇怪的问题。 I'm using:
我正在使用:
When I persist an object by GET request it normally store in database: 当我通过GET请求持久化对象时,它通常存储在数据库中:
@Singleton
@Path("/person")
public class SampleRest {
@EJB
PersonFasade personFasade;
@GET
public Person getPerson1(
final @QueryParam("id") String id,
final @QueryParam("first") String first,
final @QueryParam("last") String last)
{
final Person person = this.personFasade.create(id, first, last);
return person;
}
}
But when I'm using POST: 但是当我使用POST时:
...
@POST
public Person getPerson3(Person person) {
this.personFasade.create(person);
return person;
}
...
Everything works but Object does not store in database (without any error)!! 一切正常,但是对象不存储在数据库中(没有任何错误)!
I'm pretty sure that is the parameter, you should use the @Consumes annotation to pass a Person object as JSON/XML parameter or use the same @QueryParam annotations to describe the object to persist. 我很确定这是参数,您应该使用@Consumes批注将Person对象作为JSON / XML参数传递,或者使用相同的@QueryParam批注来描述持久化的对象。
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Person getPerson3(Person person) {
this.personFasade.create(person);
return person;
}
I found the problem! 我发现了问题! It was because I forgot to put beans.xml into WEB-INF folder!!!
这是因为我忘记将beans.xml放到WEB-INF文件夹中了!!! I don't know how it is possible to such things happen by this mistake!!
我不知道这种错误怎么可能发生! After I did it works.
在我做完之后。 I switch to Wildfly, seems it's more stable, with very good useful logs and error message.
我改用Wildfly,它似乎更稳定,具有非常有用的日志和错误消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.