将值传递给RESTful Web服务发布方法

时间:2012-07-26 07:27:44

标签: java xml rest xml-parsing jax-rs

我成功创建了restful Web服务并将其部署在Apache Tomcat 7.0中。成功部署后,我启动了我的服务器。通过使用以下命令,我可以调用Web服务。

WebResource resource = client.resource("http://localhost:8080/rest/samp/create"); 

我的网络方法是

@POST
@Path("/create")
@Produces(MediaType.TEXT_XML)
@Consumes(MediaType.TEXT_XML)
public final String sample(final String xmlMessage) {

    return "<xml version=1.0><welcome>"+xmlmessage+"</welcome>";    
}

这里我将XML内容作为参数传递,并将XML内容作为响应。

现在我需要的是如何将XML内容传递给Web方法。

2 个答案:

答案 0 :(得分:3)

您可以尝试使用Curl:

http://curl.haxx.se/

使用post发送数据的简单命令行:

curl -d "here puts data" -X POST http://mysite/create

答案 1 :(得分:1)

我猜这里使用的图书馆是泽西岛。

您必须使用构建器来设置适当的HTTP标头,方法和实体主体。

WebResource resource = client.resource("http://localhost:8080/rest/samp/create");
String request = "<your_xml>...</your_xml>";
String response = resource.accept(
     MediaType.TEXT_XML).
     header("X-FOO", "BAR"). //this line is not necessary, just an example
     type(MediaType.TEXT_XML).
     post(String.class, request);

但我推荐使用JAXB。将XML作为普通字符串创建只是粗糙而且不必要地烦人。它没有在这么简单的例子中显示(抓取整个XML并用另一个标签包装它)但很快就会出现。

This tutorial应该让你开始。