使用xml或json作为参数的restful webservice

时间:2015-07-02 10:45:48

标签: java xml web-services rest netbeans

我有一个简单的问题,我一直试图找到我办公室受限制的互联网连接,但无济于事。

1)如何在java中创建一个宁静的Web服务,最好使用接受xml和/或json作为参数的netbeans,以及如何处理它。

2)如何调用这些Web服务。我的意思是我们如何在网址中传递xml? 或者还有其他方法吗?

如果我必须使用API​​,我更喜欢使用球衣。 如果这个问题过于笼统,我很抱歉,但我需要在相对较短的时间内掌握所有相关知识。

3 个答案:

答案 0 :(得分:3)

你可以这样做。我目前正在处理这样做的网络服务。

使用这些注释:

@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Object create(Object object);

在要传递的对象上,可以从javax.xml.bind.annotation包中进行注释。这样,java就可以编组/解组这些本身。

@XmlRootElement(name = "Something")
@XmlAccessorType(XmlAccessType.NONE)
public class A {

  private static final long serialVersionUID = 6478918140990163091L;

  @XmlElementWrapper(name = "collectionWrapper")
  @XmlElement(name = "collectionItem")
  private final Collection<Object> domainCollection = new LinkedList<Object>();
}

要访问它,请执行以下操作:

final Builder request = ClientBuilder.newClient().target(getBaseUri()).path("url").request(MediaType.APPLICATION_XML);
return request.post(Entity.entity(param, MediaType.APPLICATION_XML)).readEntity(A.class);

请按照本教程中的示例进行操作:http://www.vogella.com/tutorials/REST/article.html

答案 1 :(得分:2)

这些是如何执行此操作的一般步骤(我假设您已经安装了java和相应的环境变量):

1)下载并安装Apache Tomcat。配置Netbeans以标识已提取/安装的Apache Tomcat实例。

2)下载泽西jar文件并将其添加到您的Web项目from here(链接:Jersey JAX-RS 2.0 RI包),或者如果您正在使用maven,则使用所需的依赖项。别忘了将项目添加到Apache Tomcat服务器。

3)在项目的源文件夹中创建一个基于Jersey的java类。 在每个休息功能中,您将定义您将接受哪些数据,如何处理这些数据以及您将发送什么。这是一个非常基本的例子:

@Path("/server")
public class RestServer {

   @POST
   @Consumes(MediaType.TEXT_XML)
   @Produces(MediaType.TEXT_XML)
   public String basicPOSTRequest_XMLResponse(String xmlString) {           
      System.out.println("Received: " + xmlString);
      return doSomethingWithString(xmlString);
   }
}

4)创建一个&#39; index.html&#39; webContent文件夹中的文件,其中包含用于restful函数的相应ajax调用。 (你在球衣类中创造的那些)。 在每次ajax调用中,您将使用jQuery功能发送和接收数据。这是一个基本的ajax调用示例:

function ajaxCall(xmlData) {

$.ajax({
    type: "POST",
    url: _baseURI + "/server",
    contentType: "text/xml",
    data: xmlData,  
    datatype: "text/xml",
    success:
            function (data, textStatus, jqXHR){
                alert(data);
            },
    error: 
            function (jqXHR, textStatus, errorThrown) {
                alert("error");
            }
});
}

请注意,ajax只是使用restful函数的一种方法。例如,您可以使用另一个可以发送Http调用的java(或任何其他语言)程序来执行此操作。

5)从eclipse启动tomcat服务器。

6)使用index.html文件,点击它的网址(通常类似于:&#39; http://localhost:8080/-yourProjectName-&#39;)来检查项目的其余功能。

以上只是指导原则。如果您想在任何步骤中获得更多详细信息,请告诉我以便编辑我的答案。

答案 2 :(得分:1)

您可以参考this链接。我希望可以在办公室内访问此链接。

此外,接受参数类型是您需求的基础。 有两个用于接受和响应类型的注释,分别是@consume(MediaType)@produce(MediaType)。您还必须指定MediaType,例如

  

MediaType.APPLICATION_JSON

  

MediaType.APPLICATION_XML_TYPE