Java 我在使用JAX-RS实现子资源时遇到了问题?
我想使用JAX-RS实现子资源。 我可以使用以下URI获取消息,但是当我尝试获取消息的注释时,我只会得到空的花括号 两个资源类都在同一个包中。我知道,如果URI的映射不正确,我将得到404错误,但我得到200个状态代码,其中有空括号Java 我在使用JAX-RS实现子资源时遇到了问题?,java,jax-rs,tomcat8,Java,Jax Rs,Tomcat8,我想使用JAX-RS实现子资源。 我可以使用以下URI获取消息,但是当我尝试获取消息的注释时,我只会得到空的花括号 两个资源类都在同一个包中。我知道,如果URI的映射不正确,我将得到404错误,但我得到200个状态代码,其中有空括号 @Path("/messages") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class MessageResource {
@Path("/messages")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MessageResource {
MessageService ms = new MessageService();
@GET
@Path("/{messageId}")
public Message getMessage(@PathParam("messageId") long messageId) {
return ms.getMessage(messageId);
}
@POST
public Message addMessage(Message message) {
return ms.addMessage(message);
}
@PUT
@Path("/{messageId}")
public Message updateMessage(@PathParam("messageId") long messageId, Message message) {
message.setId(messageId);
return ms.updateMessage(message);
}
@DELETE
@Path("/{messageId}")
public void deleteMessage(@PathParam("messageId") long messageId) {
ms.removeMessage(messageId);
}
@GET
@Path("/{messageId}/comments")
public CommentResource getComments() {
return new CommentResource();
}
}
注释资源类代码:
public class CommentResource {
private CommentService commentService = new CommentService();
@GET
public String test() {
return "new sub resource";
}
}
我发现我在getComments()方法上使用@GET annotation,这是导致问题的原因。我已经删除了它,现在代码运行良好
@GET
@Path("/{messageId}/comments")
public CommentResource getComments() {
return new CommentResource();
}
您在注释资源中使用的路径是什么?私有CommentService没有任何用途我想获取消息的所有注释,如messages/1/comments。如果添加System.out.prinln o在test()中记录某个内容,它会被打印吗?不会,它不会被打印。但是为什么使用@get会导致任何问题。我看你还提到过。你的意思是访问你的CommentResource吗?@techprat没有http方法。该方法只是将调用转发给
CommentResource
,后者的方法具有Http方法。