簡體   English   中英

Java soap客戶端到wsdl url

[英]Java soap client to wsdl url

我想用一些參數調用soap函數。 我用python做過,但是如何在java上做呢?

我在python上的代碼:

        url = 'http://78.188.50.246:8086/iskultur?singleWsdl'
        client = Client(url)

        d = dict(UserId='a', UserPass='b', Barkod=str(value))

        result = client.service.Stok(**d)
        return int(result)

我如何在Java上做呢?

謝謝大家

首先,您需要生成代理類。 您可以使用wsimport (這是Java SE工具)來做到這一點:

wsimport -keep http://78.188.50.246:8086/iskultur?singleWsdl

這將生成類(在包中)並將結果放置在當前目錄中。 我測試了您的URL,它生成了兩個包層次結構(一個從“ org”開始,另一個在“ com”中)。 上面的命令將保留源代碼,因此您可以將這些目錄移動到Java項目的源路徑(以后,應在構建過程中包括此代碼生成步驟)。

在類路徑中使用生成的類,現在可以從WSDL創建一個Service實例(傳遞URL和服務的名稱空間限定名稱)。 我從WSDL獲得了這些信息。

URL wsdlLocation = new URL("http://78.188.50.246:8086/iskultur?singleWsdl");
QName serviceName = new QName("http://tempuri.org/", "EbWCFtoLogo");

Service service = Service.create(wsdlLocation, serviceName);

然后,您將獲得一個代理,您可以在其中通過傳遞端口( IEbWCFtoLogo )的Service.getPort()來調用SOAP方法。 現在,您有了一個參考,可以在其中調用遠程SOAP方法。

IEbWCFtoLogo proxy = service.getPort(IEbWCFtoLogo.class);

wsimport工具生成了一個stok()方法,該方法接收3個參數。 我用您使用的一些值進行了調用,並在下面的代碼中返回-1.0

double value = proxy.stok("a", "b", "code");
System.out.println("Result: " + value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM