簡體   English   中英

將XML發布到jersey rest Web服務

[英]Post XML to jersey rest webservice

我試圖將消息從facelet(.xhtml)頁面發布到REST Web服務(澤西島)。 我認為如果服務器擁有的話,可以在javascript / jQuery中進行操作,例如

<?php header('Access-Control-Allow-Origin: *'); ?>

但是服務器似乎沒有這樣的屬性,而且我不知道在配置中在哪里修改它。

我試過了

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "example.com",
  "method": "POST",
  "headers": {
    "content-type": "application/xml",
    "cache-control": "no-cache"
  },
"data": 
  "<consultation>\n    \n\
    <consultationDescription>"+description+"</consultationDescription>\n    \n\
    <customerName>"+fullName+"</customerName>\n    \n\
    <customerPhone>"+phonenumber+"</customerPhone>\n    \n\
    <endDateAndTime>"+endDateAndTime+"</endDateAndTime>\n    \n\
    <startDateAndTime>"+startDateAndTime+"</startDateAndTime>\n\n\
  </consultation>",
  contentType: "application/xml", 

$.ajax(settings).done(function (response) {
  console.log(response);
});

但是我只會得到跨原點錯誤。

因此,我應該嘗試找到在服務器上修改源的位置,還是應該采用其他方法? 也許<h:form>並通過像#{sendXML.someMethod}之類的javabean發布,但是我不知道在哪里可以找到它的語法。 我已經被這個問題困擾了一段時間,找不到一個好的答案。 你們有什么想法嗎?

示例: http//postimg.org/image/5k2thyl3p/

單擊綠色單元格->寫消息(提交)->在服務器上預訂時間。 更新視圖。

因此,我按照以下指南找出了解決方法: http : //www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

private final String USER_AGENT = "Mozilla/5.0";

// HTTP POST request
private void sendPost() throws Exception {
try  {
    String url = "http://myurl";
    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    //add reuqest header
    con.setRequestMethod("POST");
    con.setRequestProperty("Accept-Language", "UTF-8");
    con.setRequestProperty("content-type", "application/xml");

    String urlParameters = "<myXML></myXML>";

    // Send post request
    con.setDoOutput(true);
    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();
catch (Exception e) {
    e.printStackTrace();
}
}

由於javascript由於跨域錯誤而無法正常工作,因此在Javabean中進行工作就可以了。

我通過將Http URLConnection修改為HttpURLConnection來更改了代碼示例,並添加了con.setRequestProperty(“ content-type”,“ application / xml”)。

我還用try / catch封裝了該語句。

我可能從一開始就不好說我的問題。 但是通過在bean中進行操作,它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM