我有一個簡單的問題,我一直試圖找出在我的辦公室受限的互聯網連接,但無濟於事的答案。以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) –