日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数...

發布時間:2024/9/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用axis2可以很方便的自動生成客戶端代碼,同時對復雜參數類型的傳遞也很方便,本文的服務端以.net開發,有一個自定義的實體類作為參數,客戶端用java,簡單介紹一下利用axis2的wsdl2java自動生成客戶端代碼,并調用webservice的過程。

服務端說明:

服務URL:http://localhost:1057/AudioServ.asmx

默認命名空間:http://tempuri.org/

方法:AudioInfoCollection

參數是一個自定義的實體類,類名:ParameterClass,參數名:param

服務端xml如下:

POST /AudioServ.asmx HTTP/1.1

Host: localhost

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://tempuri.org/AudioInfoCollection"

string

string

string

string

string

string

string

string

string

string

string

string

HTTP/1.1 200 OK

Content-Type: text/xml; charset=utf-8

Content-Length: length

boolean

返回bool類型

Axis2準備:

1、下載 Axis2-1.6.2(版本不固定,本文使用的是此版本),解壓到相應目錄,本文的目錄統一為:D:\ JavaExternalLib\Axis2-1.6.2

2、配置環境變量,新增AXIS2_HOME,值為axis2的解壓目錄:D:\JavaExternalLib\Axis2-1.6.2

3、使用axis2的wsdl2java工具自動生成客戶端代碼

wsdl2java.bat工具在axis2安裝目錄下的bin目錄中,D:\JavaExternalLib\Axis2-1.6.2\bin

打開Windows控制臺(win+r 輸入cmd),輸入命令:

%AXIS2_HOME%\bin\wsdl2java -uri http://localhost:1057/AudioServ.asmx?wsdl -p client -s -o client

-uri:指定wsdl文件的路徑,本地路徑或者網絡路徑都可以

-p:生成java類的包名

-o:生成文件的放置的相對目錄

執行成功后顯示:

Using AXIS2_HOME: ? D:\JavaExternalLib\Axis2-1.6.2

Using JAVA_HOME: ? ?C:\Program Files\Java\jdk1.8.0

Retrieving document at 'http://localhost:1057/AudioServ.asmx?wsdl'.

log4j:WARN No appenders could be found for logger (org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder).

log4j:WARN Please initialize the log4j system properly.

在控制臺的當前目錄下,生成了client目錄,在client\src\client目錄下,有一個AudioServStub.java文件,該文件即生成的客戶端代碼,負責調用webservice,可以直接使用。

調用:

eclipse新建一個java項目,包名client,將自動生成的客戶端類AudioServStub.java添加到client包,為了省事,將axis2主目錄下lib里面的所有jar包都應用到項目中, 新建類:CallWebService:

package client;

public class CallWebService

{

public static void main(String[] args)

{

try

{

System.out.println("Begin....");

callServ();

System.out.println("End...");

}

catch ( Exception ex)

{

System.err.println(ex.toString());

}

}

public static void callServ()

{

try

{

/* wsdl2java.bat命令生成的Stub類將WebService方法的參數都封裝在了相應的類中,

* 類名為方法名

* */

AudioServStub.ParameterClass param = new AudioServStub.ParameterClass();

param.setCallSerialMain("122388048");

param.setRecordLisQuestion("01");

param.setStartDate("20160425133100");

param.setUserCityCode("123");

param.setUserCityName("chengde");

param.setRecordLisStaffId("AJF00033");

param.setRecordLisDate("20160425133100");

param.setCallSerialNo("20160425133100001");

param.setUserCredit("sdsds");

param.setRecordLisContact("01");

param.setRecordLisRemark("test");

param.setAudioFilePath("xxxxxx");

AudioServStub ass = new AudioServStub();

AudioServStub.AudioInfoCollection aaAudioInfoCollection = new AudioServStub.AudioInfoCollection();

//設置參數

aaAudioInfoCollection.setParam(param);

//調用

if(ass.audioInfoCollection(aaAudioInfoCollection).getAudioInfoCollectionResult())

{

System.out.println("Success...");

}

else

{

System.out.println("Error...");

}

}

catch (Exception ex)

{

System.err.println(ex.toString());

}

}

}

方法callServ完成調用

總結

以上是生活随笔為你收集整理的java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。