亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java與.NET中怎么調用WebServices

發布時間:2021-07-20 10:51:06 來源:億速云 閱讀:130 作者:Leah 欄目:編程語言

Java與.NET中怎么調用WebServices,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。


 
項目需要的工具 

◆WindowsXP Professial(IIS)

◆Eclipse3.1(已裝好Tomcat axis)

◆VS.Net 2003

備注:下載安裝Tomcat5.5.16 以及 Axis的開發包,并做相應配置。看我前一片文檔。

用.NET做客戶端調用Java寫的Web Services

1.生成一個JavaWeb Services

使用Eclipse生成一個Web Services是非常簡單的。新建一個Web工程,右鍵建立一個Class,名為HelloClient.java。代碼如下:

Java代碼:

public class HelloClient      {      public String getName(String name)      {      return "Hello,"+name;      }      }

右鍵此文件選擇"WebServices"-->"Create Web Service"即可部署為本機的一個ws。在IE瀏覽器中輸入http://localhost:8008/testWebService/services/HelloClient可以看到已經部署了的HelloClient服務。輸入http://localhost:8008/testWebService/services/HelloClient?wsdl這個服務的描述文件。

新建一個項目(WinForm,ASP.net都可以),我在這里使用的是一個Asp.Net項目。在起始頁面上放置一個文本輸入框用來輸入,一個標簽用來顯示調用Web Services的結果,放置一個按鈕,用來單擊調用Web Services。然后,選擇添加Web 引用,URL一欄里填入http://localhost:8008/testWebService/services/HelloClient?wsdl,Web 引用的名稱輸入JavaWebService,單擊添加引用按鈕就可以了。此時,我們可以在VS.net 的Solution Explore中看到這個Web 引用。添加代碼如下:

C# 代碼:

protected System.Web.UI.WebControls.TextBox txtName;      protected System.Web.UI.WebControls.Button btnSend;      protected System.Web.UI.WebControls.Label lblMsg;           private JavaWebService.HelloClientService ws;      private void Page_Load(object sender, System.EventArgs e)      {      // 在此處放置用戶代碼以初始化頁面      ws=new testWebService.JavaWebService.HelloClientService();      }           private void btnSend_Click(object sender, System.EventArgs e)      {      lblMsg.Text=ws.getName(txtName.Text);      }

這樣,一個.NET客戶端就完成了,測試一下,工作正常,OK.

用Java做客戶端調用.NET寫的 Web Services

1. 用VS.NET新建一個Asp Web Services工程,添加一個web 服務,命名為Service1.asmx。新增一個web method,代碼如下:

C# 代碼:

  1. //指定SoapAction      

  2. [SoapRpcMethod(Action="http://www.xxx.com/Rpc",
    RequestNamespace="http://www.xxx.com/SU",ResponseNamespace="http://www.xxx.com/SU")]      

  3. [WebMethod]      

  4. public string getName(string name)      

  5. {      

  6. return "Hello"+name;      

  7. }   

然后運行它,并利用IE進行測試成功。

2. 打開Eclipse,新建一個Web項目,添加一個JSP頁面 ,命名為action_hello.jsp,輸入下列代碼:

Java代碼:

<%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>      <%@page import="org.apache.axis.client.Call"%>      <%@page import="org.apache.axis.client.Service"%>      <%@page import="javax.xml.namespace.QName"%>      java 代碼  <%      request.setCharacterEncoding("GBK");      String name=request.getParameter("name");      String endpoint="http://localhost/HelloClient/Service1.asmx";      Service service = new Service();      Call call = (Call)service.createCall();      call.setTargetEndpointAddress(new java.net.URL(endpoint));      call.setOperationName(new QName("http://www.zjh.com/SU","getName"));      call.addParameter("name",org.apache.axis.encoding.XMLType.XSD_DATE,javax.xml.rpc.ParameterMode.IN);      call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);      call.setUseSOAPAction(true);      call.setSOAPActionURI("http://www.zjh.com/Rpc");      String res =(String)call.invoke(new Object[]{name});      out.print(res);      %>

這個要比Java調用Java寫的ws來的復雜。ws和Java客戶端都要設置SOAPAction,否則會有異常說 System.Web.Services.Protocols.SoapException: 服務器未能識別 HTTP 標頭 SOAPAction 的值

總結

經過兩天的試驗,終于從技術上明確了通過Web Services實現.net 與 java的互通是可能的。當然有幾點是需要注意的:

1. 在提供Web Services的時候,盡量使用xml schema中支持的變量類型做參數。如果使用.net 中的dataset這種類型,對于java來說解析起來將是一個災難,當然,理論上是可以解析的。但是從效率角度來說,在Web Services與客戶端交換信息的過程中,始終有一個序列化和反序列化的問題。如果使用dataset這種類型,系統還需要對它進行序列化操作,這將是一個很耗費資源的過程。而使用string類型將簡單很多。

2. 如果使用了soap header等擴展功能,例如使用了微軟提供的WSE技術,它們之間的相互通信需要作特殊處理。

看完上述內容,你們掌握Java與.NET中怎么調用WebServices的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌源市| 修武县| 通州区| 内丘县| 七台河市| 田林县| 嘉黎县| 澄迈县| 拉萨市| 昭平县| 沧州市| 昌黎县| 申扎县| 遂昌县| 孝感市| 贞丰县| 沈阳市| 繁昌县| 德保县| 柞水县| 伽师县| 鞍山市| 浦东新区| 咸丰县| 潼南县| 洛扎县| 兴文县| 蓝山县| 玉山县| 金华市| 满洲里市| 鄂托克旗| 乌恰县| 三亚市| 德化县| 辽阳县| 白水县| 上饶县| 道孚县| 松原市| 安陆市|