我正在使用SOAP接口。接口提供商无法获得完整的WSDL(长篇故事)。他们让我使用svcutil.exe来生成我需要的一切。据我所知,svcutil.exe
如果它可以吐出一个WSDL就好了。或者,如果我可以通过Linux做些什么,那也很棒。
我可以从这里获得任何选项,或者我是否只需要等待提供程序来获取WSDL。
我想问题是,给定一个URL和使用svcutil.exe的说明,如何编写代码以仅使用Linux来使用SOAP服务?
答案 0 :(得分:14)
如果使用linux,你可以通过curl保存它
curl url > service.wsdl
以获得weatherForcast WSDL
curl http://www.webservicex.net/WeatherForecast.asmx?WSDL > weatherForcast.wsdl
答案 1 :(得分:1)
@grantk 已经展示了最简单的方法:如果您知道WSDL的托管位置,您可以使用您选择的工具简单地获取文档。
但正如您特别询问使用SVCUtil:您可以找到一个Windows框,使用SVCUtil来获取WSDL,然后返回到您的linux(和Java?)堆栈并从该WSDL生成客户端代理以使用它来调用服务您选择的Web服务框架。
如果目标服务支持WS-MetadataExchange或XML Web Service Discovery,SVCUtil将为您找到并下载WSDL:请参阅Microsoft的MSDN网站上的this HowTo。
使用 @grantk 使用的天气预报服务示例,您可以要求SVCUtil查询服务并下载元数据,如下所示:
svcutil /t:metadata http://www.webservicex.net/WeatherForecast.asmx
(我确信在Linux世界中使用WS-MetadataExchange有类似的工具,但我的经验是SVCUtil。)