Java RESTWeb服务使用Restlet接受帖子-最佳实践
我有我的资源,它们是处理POST请求的典型重写方法Java RESTWeb服务使用Restlet接受帖子-最佳实践,java,web-services,rest,post,restlet,Java,Web Services,Rest,Post,Restlet,我有我的资源,它们是处理POST请求的典型重写方法 public void acceptRepresentation(Representation rep) { if (MediaType.APPLICATION_XML.equals(rep.getMediaType())) { //Do stuff here } else { //complain! } } 我想知道的是处理XML数据包的最佳实践。我看到很多使用表单的示例,但肯定有一种方法可以处理表
public void acceptRepresentation(Representation rep) {
if (MediaType.APPLICATION_XML.equals(rep.getMediaType())) {
//Do stuff here
}
else {
//complain!
}
}
我想知道的是处理XML数据包的最佳实践。我看到很多使用表单的示例,但肯定有一种方法可以处理表示对象本身,或者将其转换为一些有用的XML对象
非常感谢您在如何解析资源中传入的XML方面提供的任何帮助 通过
representation.getText()
方法,您可以获得一个字符串,该字符串可以馈送到SAX解析器或dom读取器中。我们目前使用RESTeasy来实现这一点,RESTeasy是JAX-RS的替代实现。我们使用JAXB绑定(注释)在XML和我们的模型POJO之间映射,并为JAX-RS指定一个JAXB提供者,以便它知道如何进行映射。这在我们的中有描述,这可能会有所帮助
更新:对于Restlet,这可能是您所需要的。这是我想要的更多类型的响应。感谢您的回答: 您可以使用两种“XML” 表示法:表示法 和萨克斯管。你可以 用 张贴代表。例如。: DomRepresentation xmlRep=new 代表(rep) DomRepresentation允许您访问 到Dom文档。这个 SAXSrepresentation允许您解析 使用您自己的XML文档 contentHandler。请看这里的javadocs 1这里是2
服务器需要javax.ws.rs.*和javax.ws.rs.core.*
客户需要com.sun.jersey.api.Client.*和 com.sun.jersey.api.representation* 无论如何,我建议您使用JAX-RS而不是 替代实现,因为JAX-RS将是
即将推出的JavaEE6即使在Restlet2.0中也是这样吗 我使用restlet 2.0m6,下面是我使用的代码片段- @职位 公众代表流程(代表实体) { 试一试 { DomRepresentation dom=新的DomRepresentation(实体) Document d=dom.getDocument() }捕获(例外e) {e.printStackTrace();} 它在dom.getDocument()行抛出一个空指针异常,这意味着没有实际到达的数据 我的flex位看起来像-var服务:HTTPService=new-HTTPService();service.method=“POST”;service.contentType=“application/xml”service.url=url;var-token:AsyncToken=service.send(params)
其中params是一个XML对象。是的,因为Restlet也是一个JAX-RS实现。很抱歉,我不清楚。您能举个例子说明如何使用post和参数调用rest web服务吗?谢谢,roy
@POST
@Path("/upload")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_PLAIN)
public static Response upload(
@FormParam("name") String name,
@FormParam("content") String content)
throws Exception {
// NOTE: you get your content as String
// (do something here)
return Response.ok().build();
}
@Test
public void uploadFile()
throws Exception {
String address = "http://0.0.0.0:8000/r/upload";
WebResource r = Client.create().resource(address);
Form form = new Form();
form.add("name", "test");
form.add("content", "SOME CONTENT GOES HERE");
String s = r.post(String.class, form);
System.out.println(s);
}