繁体   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