我正在成功创建一个简单类型的简单RESTful Web服务。现在我想传递一个对象作为Web服务的参数,并将对象作为响应。我的方案是,使用Jaxb将XML消息解析为对象,并将该对象作为Web服务请求发送。在服务器端之后,它处理请求的对象并生成响应xml文件并将其作为对象发回。
在URL路径中,我提供
"http://localhost:8080/SampleWS/rest/checkXML/username=visolve&password=visolve"
表示简单类型。但是在对象中我不知道如何在URL中给出对象引用。请帮我解决问题..
Regards
Bathakarai
答案 0 :(得分:2)
只需定义一个非常好看的域对象。 JAXB和JAX-RS将完成剩下的工作。
JAXB。
@XmlRootElement
class Regards {
@XmlElement
private long sincerely;
}
JAX-RS。
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@POST
@Path("/sincerely")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response sincerely(final Regards regards) {
regards.setSincerely(System.currentTimeMillis());
return Response.ok(regards).build();
}
答案 1 :(得分:1)
虽然您当然可以在网址中包含整个XML内容,但我可能会回避它。
以这种方式思考:如果您在URL中对XML进行编码,则可能会在两端添加更多工作。现在,服务器和客户端都需要知道如何正确构建URL,并检查以确保所有内容都正确排列。如果您将来需要提供相同内容的JSON或YAML视图,该怎么办?现在,您的URL可能还需要包含内容类型。字符编码怎么样?
所有这些都说,HTTP提供了一个很好的传输机制,已经解决了这些问题。将XML包含为HTTP消息的实体主体,并使用HTTP标头来标识您要发送的内容类型,字符编码等。这将同时适用于两种方式(服务器和客户端都可以来回传送XML,并更好地利用HTTP。
Here's相关链接可能有助于解决部分细节问题。并且another。
请注意,请请告诉我您不打算通过未加密的链接以纯文本发送用户凭据。