.Net調用Java的WebService之親身體驗

作者: 振河  來源: 博客園  發布時間: 2010-09-14 21:51  閱讀: 1529 次  推薦: 0   原文鏈接   [收藏]  

        前幾天公司和別的網站合作,對方用Java的WebService給我們做了一個接口,我覺著既然是WebService,不管是用什么語言編寫的,在asp.net工程中添加Web引用都應該得到WebService的一個代理類的。
操作步驟:
  1.新建一個asp.net Web 應用程序
  2.添加web引用,如圖



  3.在工程中多了一個名叫Web References得目錄,代理類就在這里存放著
  4.單擊工程中的解決方案資源管理器中的顯示所有文件,這是就可以看到那個代理類了,名字叫Reference.cs

  上述工作進行得非常順利,去沏了一杯茶,回來該調用接口了,但是此時意想不到的終于發生了,居然接口沒有在代理類中顯示出來,這樣的話那怎么調用啊,我認為他的WebService肯定是有問題,于是就電話和對方溝通,他們說沒有問題,用Java調用是沒有問題的,我們都測試過的。我還是郁悶,于是就靜下來想了想,覺著他們的WebService不是標準的WebService,于是又給他們打電話,要求他們把程序檢查一下,看是不是標準的WebService,于是他們不耐煩地檢查了一下程序,問題終于出現了,就是他們的WebService寫的不是很標準的,但是哪兒的問題我沒有過問。
        把剛才的刪除,又重新添加了一遍Web引用,這時,再看生成的代理類,OK,接口全部有了。
        這里把生成的代理類代碼給大家貼出來:

//------------------------------------------------------------------------------
// <autogenerated>
//     This code was generated by a tool.
//     Runtime Version: 1.1.4322.573
//
//     Changes to this file may cause incorrect behavior and will be lost if 
//     the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------

// 
// 此源代碼是由 Microsoft.VSDesigner 1.1.4322.573 版自動生成。

// 
namespace JavaWebService {
    
using System.Diagnostics;
    
using System.Xml.Serialization;
    
using System;
    
using System.Web.Services.Protocols;
    
using System.ComponentModel;
    
using System.Web.Services;
    
    
    
/// <remarks/>
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute(
"code")]
    [System.Web.Services.WebServiceBindingAttribute(Name
="VChargeBinding", Namespace="http://csdfsn.esfig/javaservice")]
    
public class VChargeService : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        
/// <remarks/>
        public VChargeService() {
            
this.Url = "https://www.csdfsn.cn/cma/javaService?wsdl";
        }

        
        
/// <remarks/>
        [System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://csdfsn.esfig/javaservice", ResponseNamespace="http://csdfsn.esfig/javaservice")]
        [
return: System.Xml.Serialization.SoapElementAttribute("result")]
        
public string doservice(string String_1) {
            
object[] results = this.Invoke("doservice"new object[] {
                        String_1}
);
            
return ((string)(results[0]));
        }

        
        
/// <remarks/>
        public System.IAsyncResult Begindovcharge(string String_1, System.AsyncCallback callback, object asyncState) {
            
return this.BeginInvoke("doservice"new object[] {
                        String_1}
, callback, asyncState);
        }

        
        
/// <remarks/>
        public string Enddoservice(System.IAsyncResult asyncResult) {
            
object[] results = this.EndInvoke(asyncResult);
            
return ((string)(results[0]));
        }

        
        
/// <remarks/>
        [System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://csdfsn.esfig/javaservice", ResponseNamespace="http://csdfsn.esfig/javaservice")]
        [
return: System.Xml.Serialization.SoapElementAttribute("result")]
        
public string docheck(string String_1) {
            
object[] results = this.Invoke("docheck"new object[] {
                        String_1}
);
            
return ((string)(results[0]));
        }

        
        
/// <remarks/>
        public System.IAsyncResult Begindocheck(string String_1, System.AsyncCallback callback, object asyncState) {
            
return this.BeginInvoke("docheck"new object[] {
                        String_1}
, callback, asyncState);
        }

        
        
/// <remarks/>
        public string Enddocheck(System.IAsyncResult asyncResult) {
            
object[] results = this.EndInvoke(asyncResult);
            
return ((string)(results[0]));
        }

    }

}

  可以看到,這個代理類和引用.net的WebService生成的代理類沒有什么區別,此時下面的工作就和用.Net的WebService就一樣了

  在此說明一下生成代理類還可以使用其它的方法,如wsdl等,最后的結果都是一樣的。

0
0
 
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()