2011-04-06 47 views
5

我正在使用SOAP接口。接口提供者无法让我获得完整的WSDL(长篇故事)。他们要求我使用svcutil.exe来生成我需要的一切。从我可以告诉,svcutil.exe的svcutil.exe - 如何获得WSDL

  • 需要Windows - 我没有可用的Windows中
  • 生成C#或VisualBasic中

这将会是巨大的,如果它可能只是吐出WSDL。或者如果有什么我可以从Linux做到的,那也会很棒。

我有这里的任何选项,或者我只需要等待提供程序让我获得WSDL。

我想问题是,给定一个URL和使用svcutil.exe的说明,我该如何编写代码才能使用仅使用Linux的SOAP服务?

回答

12

如果使用Linux,你可以通过卷曲

curl url > service.wsdl 

保存它,以便获得weatherForcast WSDL

curl http://www.webservicex.net/WeatherForecast.asmx?WSDL > weatherForcast.wsdl 
+2

也不是提供一个web服务,允许平台独立的这个提供者的观点? – grantk 2011-04-06 15:58:11

+2

人们会希望如此... – 2011-04-06 16:00:59

+0

+1为失控赢家简单的解决方案。很难相信服务提供商并没有说“浏览到端点并添加”WSDL“,而不是建议将.net工具用于Linux(可能是Java?)开发人员。 – razlebe 2011-04-06 16:35:57

1

@grantk已经展示了最简单的方法:如果你知道在哪里的WSDL您可以使用您选择的工具轻松获取文档。

但是,当您特别提到使用SVCUtil时:您可以找到一个窗口框,使用SVCUtil获取WSDL,然后返回到您的linux(和Java?)堆栈,并从该WSDL生成客户端代理以调用该服务使用您的Web服务框架的选择。

如果目标服务支持WS-MetadataExchangeXML Web Service Discovery,SVCUtil将为您找到并下载WSDL:请参阅Microsoft的MSDN网站上的this HowTo

使用使用@grantk天气预报服务的例子,你可以问SvcUtil工具来查询服务和下载的元数据如下:

svcutil /t:metadata http://www.webservicex.net/WeatherForecast.asmx 

(我敢肯定有类似的工具来做到这一点在Linux世界中使用WS-MetadataExchange,但我的经验是与SVCUtil。)

+0

PS。对于我的价值,任何不能提供WSDL服务的提供者都会对我的可靠性发出警钟。 :) – razlebe 2011-04-06 16:30:42