Java 以xml或json为参数的restful Web服务

Java 以xml或json为参数的restful Web服务,java,xml,web-services,rest,netbeans,Java,Xml,Web Services,Rest,Netbeans,我有一个简单的问题,我一直试图通过我办公室受限的互联网连接找到答案,但没有结果 1) 如何在java中创建restful web服务(最好使用接受xml和/或json作为参数的netbeans),以及如何处理它 2) 如何称呼这些web服务。我的意思是我们如何在url中传递xml? 或者还有别的办法吗 如果我必须使用API,我更喜欢使用jersey。 如果这个问题太笼统,我很抱歉,但我需要在相对较短的时间内掌握这方面的所有知识 您可以参考链接。我希望这个链接可以在你的办公室内访问 此外,接受参数

我有一个简单的问题,我一直试图通过我办公室受限的互联网连接找到答案,但没有结果

1) 如何在java中创建restful web服务(最好使用接受xml和/或json作为参数的netbeans),以及如何处理它

2) 如何称呼这些web服务。我的意思是我们如何在url中传递xml? 或者还有别的办法吗

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

您可以参考链接。我希望这个链接可以在你的办公室内访问

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

MediaType.APPLICATION_JSON

MediaType.APPLICATION\u XML\u类型


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

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

2) 下载jersey jar文件并将其添加到您的Web项目(链接:jersey JAX-RS 2.0 RI bundle),或者如果您正在使用maven,请使用所需的依赖项。不要忘记将项目添加到ApacheTomcat服务器

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

@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) 在webContent文件夹中创建一个“index.html”文件,其中包含restful函数的相应ajax调用。(您在jersey类中创建的)在每次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文件的url(通常类似于:“”)来检查项目的restful功能


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

您可以这样做。我目前正在开发这样的Web服务

使用以下注释:

@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>();
}

按照本教程进行示例:

如果提供的任何建议链接在您的办公室受到限制,该怎么办?;)我期待着……但是值得一试你们的问题都很广泛。这让人觉得你没有经验。如果是这样的话,我建议你完成一个教程。就我个人而言,我会从最高层开始。第一章将帮助您开始运行。第三章将更深入地介绍基础知识。第九章将指导您如何处理JSON和XML。另一种开始使用Netbeans的方法(非常快,您可以跳过第1章)是查看
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);