日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linux下如何調(diào)用并測(cè)試WSDL接口?(linux調(diào)用測(cè)試wsdl)

WSDL(Web Services Description Language)是一種用于描述Web服務(wù)的XML語(yǔ)言。它提供了一種通用的方式,描述Web服務(wù)如何訪問(wèn)、操作以及使用消息進(jìn)行通信。在Linux下,我們可以使用各種工具來(lái)調(diào)用并測(cè)試WSDL接口,如命令行工具curl、SOAPUI等。本文將介紹如何使用這些工具來(lái)進(jìn)行WSDL接口調(diào)用和測(cè)試。

一、使用curl調(diào)用WSDL接口

curl是一款常用的Linux命令行工具,用于發(fā)送和接收HTTP和HTTPS請(qǐng)求。我們可以使用curl來(lái)調(diào)用WSDL接口。

在調(diào)用WSDL接口之前,我們需要先獲取WSDL文件的URL地址。假設(shè)WSDL文件的URL地址為http://localhost:8080/Service/Service.wsdl,我們可以使用curl發(fā)送如下命令:

“`

$ curl -X GET -H “Content-Type: application/xml” http://localhost:8080/Service/Service.wsdl

“`

其中,-X參數(shù)指定請(qǐng)求方法為GET,-H參數(shù)指定請(qǐng)求頭中的Content-Type為application/xml,后面的URL為WSDL文件的URL地址。

執(zhí)行以上命令后,curl會(huì)向WSDL服務(wù)發(fā)送請(qǐng)求,并返回WSDL文件的內(nèi)容。

接下來(lái),我們需要使用WSDL工具來(lái)生成客戶端代碼,以便調(diào)用WSDL接口。在Linux下,常用的WSDL工具有wsdl2java和gsoap。

以wsdl2java為例,我們可以使用以下命令來(lái)生成Java客戶端代碼:

“`

$ wsdl2java -uri http://localhost:8080/Service/Service.wsdl -d /path/to/output/dir -p com.example.service

“`

其中,-uri參數(shù)指定WSDL文件的URL地址,-d參數(shù)指定生成的代碼存放路徑,-p參數(shù)指定生成的包名。

執(zhí)行以上命令后,wsdl2java工具會(huì)下載并解析WSDL文件,生成相應(yīng)的Java客戶端代碼。

使用生成的客戶端代碼調(diào)用WSDL接口需要相應(yīng)的運(yùn)行環(huán)境和依賴(lài)庫(kù)支持,例如JDK、Axis等。

二、使用SOAPUI測(cè)試WSDL接口

SOAPUI是一款功能強(qiáng)大的開(kāi)源API測(cè)試工具,可以用于測(cè)試各種類(lèi)型的API,包括WSDL接口。在Linux下,我們可以使用SOAPUI來(lái)測(cè)試WSDL接口。

我們需要在SOAPUI中創(chuàng)建一個(gè)新的項(xiàng)目,并將WSDL文件導(dǎo)入到項(xiàng)目中。在SOAPUI的主界面上,點(diǎn)擊左上角的File菜單,選擇New SOAPUI Project,輸入項(xiàng)目名稱(chēng)和WSDL文件的URL地址,點(diǎn)擊OK按鈕即可創(chuàng)建一個(gè)新的項(xiàng)目并導(dǎo)入WSDL文件。

接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)新的測(cè)試用例,以便測(cè)試WSDL接口。在SOAPUI的左側(cè)欄中,選擇剛剛創(chuàng)建的項(xiàng)目,右鍵點(diǎn)擊并選擇New Test Case,輸入測(cè)試用例名稱(chēng),點(diǎn)擊OK按鈕即可創(chuàng)建一個(gè)新的測(cè)試用例。

在測(cè)試用例中,我們可以創(chuàng)建多個(gè)測(cè)試步驟,每個(gè)測(cè)試步驟可以對(duì)應(yīng)WSDL接口中的一個(gè)操作。在SOAPUI的左側(cè)欄中,選擇剛剛創(chuàng)建的測(cè)試用例,右鍵點(diǎn)擊并選擇New Test Step,在彈出的菜單中選擇From WSDL,并選擇一個(gè)操作名稱(chēng)作為測(cè)試步驟名稱(chēng),點(diǎn)擊OK按鈕即可創(chuàng)建一個(gè)新的測(cè)試步驟。

對(duì)于每個(gè)測(cè)試步驟,我們需要設(shè)置相應(yīng)的請(qǐng)求和斷言。在SOAPUI的右側(cè)欄中,分別選擇Request和Assertion選項(xiàng)卡,填寫(xiě)相應(yīng)的請(qǐng)求和預(yù)期結(jié)果,然后點(diǎn)擊運(yùn)行按鈕即可運(yùn)行測(cè)試用例。

在運(yùn)行測(cè)試用例之前,我們需要設(shè)置相應(yīng)的環(huán)境變量、認(rèn)證信息等。在SOAPUI的頂部工具欄中,選擇File -> Preferences,進(jìn)入全局配置界面,可以設(shè)置環(huán)境變量、認(rèn)證信息、代理設(shè)置等。

本文介紹了在Linux下如何使用curl和SOAPUI來(lái)調(diào)用和測(cè)試WSDL接口。通過(guò)使用這些工具,我們可以方便地測(cè)試WSDL接口,并保證接口的正確性和可靠性。在實(shí)際開(kāi)發(fā)中,我們還可以使用其他工具來(lái)進(jìn)行更加專(zhuān)業(yè)、高效的接口測(cè)試和調(diào)試,例如Postman、JMeter等。

相關(guān)問(wèn)題拓展閱讀:

  • java如何調(diào)用webservice接口
  • 跪求大神指導(dǎo):linux下使用gsoap生成C++代碼訪問(wèn)WebService編譯出錯(cuò)
  • 如何獲取天氣預(yù)報(bào)的wsdl

java如何調(diào)用webservice接口

Java調(diào)用WebService可以直接使用Apache提供的axis.jar自己編寫(xiě)代碼,伍余或者利用Eclipse自動(dòng)生成WebService Client代碼,利用其中的Proxy類(lèi)進(jìn)行調(diào)用。理論上是一樣的,只不過(guò)用Eclipse自動(dòng)生成代碼省事些。

1、編寫(xiě)代碼方虛衫式:

package com.yudun.test;

import java.rmi.RemoteException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.message.PrefixedQName;

import org.apache.axis.message.SOAPHeaderElement;

import com.cezanne.golden.user.Exception;

import com.cezanne.golden.user.UserManagerServiceProxy;

import javax.xml.namespace.QName;

import java.net.MalformedURLException;

import javax.xml.rpc.ServiceException;

import javax.xml.soap.Name;

import javax.xml.soap.SOAPException;

public class testWebService {

public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException

{

//標(biāo)識(shí)Web Service的具體路徑

String endpoint = “WebService服務(wù)地址”;

// 創(chuàng)建 Service實(shí)例

Service service = new Service();

// 通過(guò)Service實(shí)例創(chuàng)建Call的實(shí)腔譽(yù)滾例

Call call = (Call) service.createCall();

//將Web Service的服務(wù)路徑加入到call實(shí)例之中.

call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設(shè)置服務(wù)的位置

// 由于需要認(rèn)證,故需要設(shè)置調(diào)用的SOAP頭信息。

Name headerName = new PrefixedQName( new QName(“發(fā)布的wsdl里的targetNamespace里的url”, “string_itemName”) );

org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);

header.addTextNode( “blablabla” );

call.addHeader(header);

// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(“發(fā)布的wsdl里的targetNamespace里的url”, “SoapHeader”);

// soapHeaderElement.setNamespaceURI(“發(fā)布的wsdl里的targetNamespace里的url”);

// try

// {

//soapHeaderElement.addChildElement(“string_itemName”).setValue(“blablabla”);

// }

// catch (SOAPException e)

// {

//e.printStackTrace();

// }

// call.addHeader(soapHeaderElement);

//調(diào)用Web Service的方法

org.apache.axis.description.OperationDesc oper;

org.apache.axis.description.ParameterDesc param;

oper = new org.apache.axis.description.OperationDesc();

oper.setName(“opName”);

param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName(“”, “arg0”), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(“

“, “string”), java.lang.String.class, false, false);

param.setOmittable(true);

oper.addParameter(param);

param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName(“”, “arg1”), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(“

“, “string”), java.lang.String.class, false, false);

param.setOmittable(true);

oper.addParameter(param);

param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName(“”, “arg2”), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(“

“, “string”), java.lang.String.class, false, false);

param.setOmittable(true);

oper.addParameter(param);

oper.setReturnType(new javax.xml.namespace.QName(“

“, “string”));

oper.setReturnClass(java.lang.String.class);

oper.setReturnQName(new javax.xml.namespace.QName(“”, “return”));

oper.setStyle(org.apache.axis.constants.Style.WRAPPED);

oper.setUse(org.apache.axis.constants.Use.LITERAL);

oper.addFault(new org.apache.axis.description.FaultDesc(

new javax.xml.namespace.QName(“發(fā)布的wsdl里的targetNamespace里的url”, “Exception”),

“Exception”,

new javax.xml.namespace.QName(“發(fā)布的wsdl里的targetNamespace里的url”, “Exception”),

true

));

call.setOperation( oper );

call.setOperationName(new javax.xml.namespace.QName(“發(fā)布的wsdl里的targetNamespace里的url”, “opName”));

//調(diào)用Web Service,傳入?yún)?shù)

String res = ( String ) call.invoke( new Object(“arg0″,”arg1”));

System.out.println(“===============”);

return res;

}

/**

* @param args

*/

public static void main(String args) {

try {

System.out.println(getResult());

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (RemoteException e) {

e.printStackTrace();

} catch (ServiceException e) {

e.printStackTrace();

} catch (SOAPException e) {

e.printStackTrace();

}

}

}

2、利用Eclipse自動(dòng)生成WebService client代碼就容易多了:(由于還不會(huì)發(fā)圖片,就用語(yǔ)言描述了,大家酬和看吧。。。)

首先,new project,選擇other,在輸入框中輸入Web Service Client,選中搜索后的結(jié)果,點(diǎn)擊Next,在Service definition中輸入 WebService的發(fā)布地址,點(diǎn)擊Finish

這樣,WebService Client代碼已經(jīng)生成好了。

接下來(lái)寫(xiě)一個(gè)Test類(lèi),在main函數(shù)中輸入如下代碼:

String endpoint = “服務(wù)器的WebService的地址”;

YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);

try {

String resultStr = umsp.opMethod(“arg0″,”arg1”);

System.out.println(resultStr);

} catch (Exception e) {

System.out.println(“異?!?;

e.printStackTrace();

} catch (RemoteException e) {

System.out.println(“RemoteException異常”);

e.printStackTrace();

}

如果還有疑問(wèn)的話還有視頻,如果對(duì)你有幫助請(qǐng)采納!

Java通過(guò)WSDL文件來(lái)調(diào)用webservice:

注意,以下的代碼并沒(méi)有經(jīng)過(guò)真正的測(cè)試,只是說(shuō)明這些情況,不同版本的Axis相差很大,大家更好以apache網(wǎng)站上的例子為準(zhǔn),這里僅僅用于說(shuō)明其基本用法。

1,直悄扮接AXIS調(diào)用遠(yuǎn)程的web service

這種方法比較適合那些高手,他們能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是專(zhuān)門(mén)搞這行歷塵的,即使一段時(shí)間看懂,后來(lái)也就忘記肢運(yùn)禪了。直接調(diào)用模式如下:

import java.util.Date;

import java.text.DateFormat;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

import java.lang.Integer;

import javax.xml.rpc.ParameterMode;

public class caClient {

public static void main(String args) {

try {

String endpoint = “

“;

//直接引用遠(yuǎn)程的wsdl文件

//以下都是套路

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName(“addUser”);//WSDL里面描述的接口名稱(chēng)

call.addParameter(“userName”, org.apache.axis.encoding.XMLType.XSD_DATE,

javax.xml.rpc.ParameterMode.IN);//接口的參數(shù)

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設(shè)置返回類(lèi)型

String temp = “測(cè)試人員”;

String result = (String)call.invoke(new Object{temp});

//給方法傳遞參數(shù),并且調(diào)用方法

System.out.println(“result is “+result);

}

catch (Exception e) {

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

}

}

}

2,直接SOAP調(diào)用遠(yuǎn)程的webservice

這種模式我從來(lái)沒(méi)有見(jiàn)過(guò),也沒(méi)有試過(guò),但是網(wǎng)絡(luò)上有人貼出來(lái),我也轉(zhuǎn)過(guò)來(lái)

import org.apache.soap.util.xml.*;

import org.apache.soap.*;

import org.apache.soap.rpc.*;

import java.io.*;

import java.net.*;

import java.util.Vector;

public class caService{

public static String getService(String user) {

URL url = null;

try {

url=new URL(“

“);

} catch (MalformedURLException mue) {

return mue.getMessage();

}

// This is the main SOAP object

Call soapCall = new Call();

// Use SOAP encoding

soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

// This is the remote object we’re asking for the price

soapCall.setTargetObjectURI(“urn:xmethods-caSynrochnized”);

// This is the name of the method on the above object

soapCall.setMethodName(“getUser”);

// We need to send the ISBN number as an input parameter to the method

Vector soapParams = new Vector();

// name, type, value, encoding style

Parameter inParam = new Parameter(“userName”, String.class, user, null);

soapParams.addElement(inParam);

soapCall.setParams(soapParams);

try {

// Invoke the remote method on the object

Response soapResponse = soapCall.invoke(url,””);

// Check to see if there is an error, return “N/A”

if (soapResponse.generatedFault()) {

Fault fault = soapResponse.getFault();

String f = fault.getFaultString();

return f;

} else {

// read result

Parameter soapResult = soapResponse.getReturnValue ();

// get a string from the result

return soapResult.getValue().toString();

}

} catch (SOAPException se) {

return se.getMessage();

}

}

}

3,使用wsdl2java把WSDL文件轉(zhuǎn)成本地類(lèi),然后像本地類(lèi)一樣使用,即可。

這是像我這種懶人最喜歡的方式,仍然以前面的global weather report為例。

首先 java org.apache.axis.wsdl.WSDL2Java

原本的網(wǎng)址是

,中間個(gè)各問(wèn)號(hào),但是Linux下面它不能解析,所以去掉問(wèn)號(hào),改為點(diǎn)號(hào)。

那么就會(huì)出現(xiàn)4個(gè)文件:

GlobalWeather.java GlobalWeatherLocator.java GlobalWeatherSoap.java GlobalWeatherSoapStub.java

其中GlobalWeatherSoap.java是我們最為關(guān)心的接口文件,如果你對(duì)RMI等SOAP實(shí)現(xiàn)的具體細(xì)節(jié)不感興趣,那么你只需要看接口文件即可,在使用的時(shí)候,引入這個(gè)接口即可,就好像使用本地類(lèi)一樣。

Java通過(guò)WSDL文件來(lái)調(diào)用webservice直接調(diào)用模慶局蔽式如下:譽(yù)州

import java.util.Date;

import java.text.DateFormat;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

import java.lang.Integer;

import javax.xml.rpc.ParameterMode;

public class caClient {

public static void main(String args) {

try {

String endpoint = “

//直接引臘圓用遠(yuǎn)程的wsdl文件

//以下都是套路 

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName(“addUser”);//WSDL里面描述的接口名稱(chēng)

call.addParameter(“userName”, org.apache.axis.encoding.XMLType.XSD_DATE,

javax.xml.rpc.ParameterMode.IN);//接口的參數(shù)

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設(shè)置返回類(lèi)型  

String temp = “測(cè)試人員”;

String result = (String)call.invoke(new Object{temp});

//給方法傳遞參數(shù),并且調(diào)用方法

System.out.println(“result is “+result);

}

catch (Exception e) {

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

}

}

}

有掘棚幾種州基方冊(cè)散謹(jǐn)法

跪求大神指導(dǎo):linux下使用gsoap生成C++代碼訪問(wèn)WebService編譯出錯(cuò)

高端了~gsoap是什么?

找人來(lái)幫助你解決問(wèn)題,這將是幫助吧!

我不知道為什么學(xué)生認(rèn)為你好運(yùn)。游帶

請(qǐng)stdsoap2.cpp和stdsoap2.h添加到您的項(xiàng)目螞森中去悶?zāi)ギ€……

已發(fā)送到您的E-mail地址

已發(fā)送到您的E-mail地址

如何獲取天氣預(yù)報(bào)的wsdl

1、天氣預(yù)報(bào)web services地址 

用瀏覽器打開(kāi)此地址,保存頁(yè)面為Weather.xml

2、新建一個(gè)java工程 webservices

建立包名 com.test.ws  

將Weather.xml拷山纖貝到src目錄下

3、編寫(xiě)批處理WSDL-SQUARED.CMD,使用wsdj2java生成客戶啟唯仔悄汪端調(diào)用代碼

set AXIS_HOME=D:\axis-1_4

set CLASSPATH=.;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar

java org.apache.axis.wsdl.WSDL2Java  -p com.test.ws Weather.xml

Java調(diào)用以WSDL形式發(fā)布的web service

webservice的 發(fā)布一般都是使用WSDL(web service descriptive language)文件的樣式來(lái)發(fā)布的,在WSDL文件里面,包含這個(gè)webservice暴露在外面可供使用的接口。今天搜索到了非常好的 webservice provider列閉塵表

這上面列出了70多個(gè)包括很多方面的free webservice provider,utilities->global weather就可以獲取全球的天氣預(yù)報(bào)。

下面我們來(lái)看Java如何通過(guò)WSDL文件來(lái)調(diào)用這些web service:

注意,以下的代碼并沒(méi)有經(jīng)過(guò)真正的測(cè)試,只是說(shuō)明這些情況,不同版本的Axis相差很大,大家更好以apache網(wǎng)站上的例子為準(zhǔn),這里僅僅用于說(shuō)明其基本用法。

1,直接AXIS調(diào)用遠(yuǎn)程的web service

我覺(jué)得這種方法嘩敏比較適合那些高手,他們能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是專(zhuān)門(mén)搞這行的,即使一段時(shí)間看懂,后來(lái)也就忘記了。直接調(diào)用模式如下:

import java.util.Date;

import java.text.DateFormat;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

import java.lang.Integer;

import javax.xml.rpc.ParameterMode;

public class caClient {

public static void main(String args) {

try {

String endpoint = “

“;

//直接引用遠(yuǎn)程的wsdl文件

//以下都是套路

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName(“addUser”);//WSDL里面描述的接口名稱(chēng)

call.addParameter(“userName”, org.apache.axis.encoding.XMLType.XSD_DATE,

javax.xml.rpc.ParameterMode.IN);//接口的參數(shù)

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設(shè)置返回類(lèi)型

String temp = “轎蘆禪測(cè)試人員”;

String result = (String)call.invoke(new Object{temp});

//給方法傳遞參數(shù),并且調(diào)用方法

System.out.println(“result is “+result);

}

關(guān)于linux 調(diào)用 測(cè)試wsdl的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


分享文章:Linux下如何調(diào)用并測(cè)試WSDL接口?(linux調(diào)用測(cè)試wsdl)
本文地址:http://www.5511xx.com/article/djhoece.html