我正在用球衣构建 REST 服务,但遇到了一个奇怪的异常。我想打一个 REST uri,类似于:
http://localhost:9889/rest/Users/{userid}
与请求一起发送的内容采用 JSON 格式,类似于:
{
"attr1":"name",
"attr2":"age"
}
端点 url 代码如下所示:
@Path("/rest/Users")
class Users
{
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/{userId}")
@Consumes(MediaType.APPLICATION_JSON)
public String getUserInfoQuery(
QueryDoc reqJSON,
@PathParam("userId") String userId,
@HeaderParam("Session-Token") String sessionId,
@HeaderParam("Authorization") String authToken)
)
{
.
.
.
.
}
}
QueryDoc 资源如下所示:
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class QueryDoc
{
@XmlElement(name = "attr1")
private String attr1;
@XmlElement(name = "attr2")
private String attr2;
//getters and setters
.
.
.
.
}
当我启动服务器时,抛出异常
com.sun.jersey.api.container.ContainerException: Fatal issues found at
class com.test.Users. See logs for more details.
at com.sun.jersey.server.impl.application.WebApplicationImpl.newResourceClass(WebApplicationIm....
我可以在这里找到这个异常http://www.skybert.net/java/jersey/ 并在这个链接中提到..原因是
public String getUserInfoQuery(
QueryDoc reqJSON,
reqJSON 没有被注释。如果我用一些注释对其进行注释,则在服务器启动时不会引发异常,但在这种情况下,url 响应是没有意义的。如果我删除此参数,则 url 有效,但不会使用请求 JSON。如何使它在我想使用请求的 JSON 内容以及 HeaderParams 和 PathParams 的地方工作