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