我在使用生成的存根與第三方軟件時有一些限制。所以,我正在尋找其他選項,如簡單的HTTP請求和響應來獲得結果。我可能需要將5或6個參數傳遞給一個操作,並從Web服務獲取一個輸出。我可以作爲HTTP請求調用Web服務嗎?
我可以創建一個簡單的JSP文件,它在內部調用web服務。我可以通過HTTP請求調用這個JSP。我想檢查是否有其他選項。
我使用的是JDK1.6,JBoss 5.1。
我在使用生成的存根與第三方軟件時有一些限制。所以,我正在尋找其他選項,如簡單的HTTP請求和響應來獲得結果。我可能需要將5或6個參數傳遞給一個操作,並從Web服務獲取一個輸出。我可以作爲HTTP請求調用Web服務嗎?
我可以創建一個簡單的JSP文件,它在內部調用web服務。我可以通過HTTP請求調用這個JSP。我想檢查是否有其他選項。
我使用的是JDK1.6,JBoss 5.1。
SOAP Web服務請求是您可以使用任何客戶端觸發的正常POST HTTP請求,包括簡單的URLConnection
甚至curl
。參見:Sending a SOAP request to a Web Service via URLConnection。
你不需要一個JSP(實際上,從維護的角度來看,從JSP調用外部Web服務是一個可怕的想法)。您可以從任何Java代碼調用Web服務,甚至可以直接從main
方法中調用。
嘗試了這一點...
public void postData() throws Exception {
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://www.xyz.com");
List<NameValuePair> list = new ArrayList<NameValuePair>(1);
list.add(new BasicNameValuePair("name","ABC");
httppost.setEntity(new UrlEncodedFormEntity(list));
HttpResponse r = client.execute(httppost);
}
我同意托馬斯Nurkiewicz。不要使用JSP來調用Web服務。
相反,創建一個Web服務來調用您需要的其他Web服務。通過這種方式,您可以在返回響應之前輕鬆處理結果。
使用註釋可以在JBoss上輕鬆創建Web服務。
我得到這個混合的結果。 1)嘗試http://www.webservicex.net/stockquote.asmx,我得到HTTP 500錯誤。 2)我嘗試了另一個私人服務,我得到HTTP響應415. 3)我測試了另一個,它工作正常。 – priceline 2012-07-10 21:08:25
@priceline:添加'Content-Type:text/xml; charset = utf-8'或'Content-Type:application/xml'頭文件,應該修復'2)' – 2012-07-10 21:19:46
一旦我設置了內容類型,我的第二個選項就起作用了。 conn.setRequestProperty(「Content-Type」,「text/xml; charset = utf-8」);編輯:托馬斯,它的工作..我以前沒有看到你的消息。謝謝, – priceline 2012-07-10 21:35:21