我有一个简单的问题,我一直试图找出在我的办公室受限的互联网连接,但无济于事的答案。以xml或json作为参数的宁静web服务
1)如何在java中最好使用接受xml和/或json作为参数的netbeans创建一个宁静的web服务,以及如何处理它。
2)如何调用这些Web服务。我的意思是我们如何在URL中传递xml? 或者还有其他方法吗?如果我不得不使用API,我宁愿使用球衣。 如果问题太笼统,我很抱歉,但我需要在相对较短的时间内获得的所有知识。
我有一个简单的问题,我一直试图找出在我的办公室受限的互联网连接,但无济于事的答案。以xml或json作为参数的宁静web服务
1)如何在java中最好使用接受xml和/或json作为参数的netbeans创建一个宁静的web服务,以及如何处理它。
2)如何调用这些Web服务。我的意思是我们如何在URL中传递xml? 或者还有其他方法吗?如果我不得不使用API,我宁愿使用球衣。 如果问题太笼统,我很抱歉,但我需要在相对较短的时间内获得的所有知识。
您可以参考this链接。我希望这个链接可以从你的办公室内访问。
此外,接受参数的类型是您的要求的基础。 有两种注解用于接受和响应类型,分别是@consume(MediaType)
和@produce(MediaType)
。您也将有指定的MediaType,像
MediaType.APPLICATION_JSON
或
MediaType.APPLICATION_XML_TYPE
这是如何做到的一般步骤这(我假设你已经安装了java和相应的环境变量):
1)下载并安装Apache Tomcat。配置Netbeans以标识已提取/安装的Apache Tomcat实例。 2)下载jersey 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)创建包含您宁静的功能对应的Ajax调用WebContent文件夹中的“index.html的”文件。 (你在球衣类中创建的那些)。 在每个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只是一个方式来使用你的宁静功能。例如,您可以使用另一个可以发送Http调用的java(或任何其他语言)程序来执行此操作。
5)从eclipse启动tomcat服务器。
6)使用你的index.html文件,通过点击它的url(通常是'http://localhost:8080/-yourProjectName-')来检查项目的宁静功能。
以上仅为准则。如果你想在任何步骤中获得更多细节,请告诉我,以便编辑我的答案。
你可以这样做。我目前正在研究这样做的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>();
}
要访问做这样的事情:
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);
如果有什么任何建议提供链接,了解这个在你的办公室被限制? ;) – Garry
我期待那..但值得一试 – wib
你的两个问题都非常广泛。它使你看起来像没有零经验。如果是这样的话,我建议通过教程来运行。就个人而言,我只是从[用户指南](https://jersey.java.net/documentation/latest/index.html)的顶部开始。第一章会让你启动并运行。第三章将更深入地介绍基础知识。第九章将帮助您处理JSON和XML。另一种开始使用Netbeans的方式(真正快速,因此您可以跳过第1章)是查看[这个答案]的底部(http://stackoverflow.com/a/30546891/2587435) –