我对Jersey REST服务有一个非常奇怪的问题。我正在使用:
当我通过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;
}
}
但是当我使用POST时:
...
@POST
public Person getPerson3(Person person) {
this.personFasade.create(person);
return person;
}
...
一切正常但Object不存储在数据库中(没有任何错误)!!
答案 0 :(得分:0)
我很确定这是参数,您应该使用@Consumes注释将Person对象作为JSON / XML参数传递,或使用相同的@QueryParam注释来描述要保留的对象。
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Person getPerson3(Person person) {
this.personFasade.create(person);
return person;
}
答案 1 :(得分:0)
我发现了问题!那是因为我忘了把beans.xml放到WEB-INF文件夹中!我不知道这个错误是怎么发生的!我做完之后就行了。我切换到Wildfly,看起来更稳定,有非常好的有用日志和错误信息。