客户端为我提供了生成Web服务的wsdl.但是当我使用wsdl.exe命令时,它生成了.cs类.我在我的Web服务中使用了该类,当我向客户端提供wsdl时,它与它们的模式不匹配.实际上我希望从wsdl自动生成.asmx,以便我可以填写web方法.这样它就会完全匹配他们的架构.希望它有意义.
我有一个简单的服务,我部署到Azure.可通过以下方式访问:
http://xxxxxxxxxxxxxxxxxxxxxxx.cloudapp.net/MyTestService.svc
Run Code Online (Sandbox Code Playgroud)
WSDL的URL使用内部计算机名称而不是公共DNS:
svcutil.exe http://rd001520d328923a/MyTestService.svc?wsdl
Run Code Online (Sandbox Code Playgroud)
显然,无法从机器外部访问WSDL.
我知道如果你在IIS中运行它,或者你知道服务的url,可以改变一些事情.例如,更改<serviceMetadata>配置以指定httpGetUrl属性,但这不起作用,因为我必须包括绝对URL.使用相对URL,它仍然使用内部计算机名称.真正的问题是WSDL包含带有机器名的URL引用,因此使它无用.
有两个不合标准的解决方法:
有人建议我可以抓取WSDL,编辑它来修复URL,然后上传它,以便可以从不同的URL访问它.
我发现2010年初有一个修补程序可用,但必须有一个更好的方法.
如何解决公共面向DNS使用而不是机器名称?
这三个都可以用作REST API描述符.有什么区别?我知道这是一个激烈的问题,但我只想进行比较,而不是火焰战:P
从suds 文档中,我可以创建一个Client如果我有一个WSDL的URL.
from suds.client import Client
url = 'http://localhost:7080/webservices/WebServiceTestBean?wsdl'
client = Client(url)
Run Code Online (Sandbox Code Playgroud)
我目前在我的文件系统上有WSDL文件.是否可以使用suds从我的文件系统读取WSDL文件而不是在Web服务器上托管它?
我正在实现一个Web服务,我已经实现了REST和SOAP版本,以查看哪个适合我的需求.我决定选择REST因为它的简单性,我可能会开发一个iPhone应用程序来使用它.我的问题很简单,是否可以为我的REST服务创建WSDL或WADL,是否有必要?
谢谢
我需要在给定XSD文件的情况下生成WSDL文件.我该怎么做呢?我可以在VS2005中这样做吗?最简单的方法是什么?
我对mex端点有几个问题.
在旧版Web服务中,我们使用wsdl创建代理.WSDL公开Web服务的元数据.在wcf中,另一个术语是mex端点,它也暴露了元数据,但wsdl仍然存在于wcf中.我是wcf的新手,我对此感到困惑difference between wsdl & mex endpoint?
是什么意思httpGetEnabled="false" or httpGetEnabled="true"?
如果我确定httpGetEnabled="false"会发生什么?是否意味着客户端无法从IDE添加服务引用?但是,如果我设置httpGetEnabled="false",并看到客户端可以添加服务引用.什么httpGetEnabled设置确实十分混乱.
一个人说
MEX和WSDL是两种不同的方案,可以告诉潜在客户您的服务结构.因此,您可以选择将服务合同公开为(MEX)或WSDL.
如果上述说法属实,请告诉我何时使用MEX以及何时使用 WSDL?
如何禁用mex并仅通过WSDL公开我的服务?
WSDL support all bidning like wshttp,wsdualhttp or tcp etc... 如果可能,请详细讨论wsdl&mex.
你说
5. How can I disable mex and expose my service only through WSDL?
Do not specifiy a mex endpoint in your config and use httpGetEnabled.
Run Code Online (Sandbox Code Playgroud)
你是否意味着在配置中应该没有与mex端点相关的条目,而httpgetenable看起来如下所示?
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/SampleService?wsdl"/>
Run Code Online (Sandbox Code Playgroud)
你说
WSDL通常通过http或https get url公开,您无法真正配置(例如出于安全限制或向后兼容性).MEX端点通过可配置端点公开元数据,并且可以使用不同类型的传输,例如TCP或HTTP,以及不同类型的安全机制.
你说mex是可配置的,但是wsdl不是.你什么意思mex is configurable?请讨论mex支持的配置类型以及配置方式.
如果我设置httpGetEnabled="false" then the …
我有一个WSDL文件(或者更确切地说,它的URL).我需要将它转换为Java类.我还需要为它描述的Web服务提供测试.我是Web服务的新手,有人可以告诉我如何将WSDL转换为Java吗?
我使用Eclipse JEE Kepler.也许有一些插件可以自动执行此操作?
我一直有一些奇怪的问题.主要的一点是,在尝试将WSDL添加到新项目时,我不断收到以下错误:
Error loading [https://.../token?wsdl]: java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 -
Run Code Online (Sandbox Code Playgroud)
这是error.log文件中记录的消息:
java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 -
at com.eviware.soapui.impl.wsdl.support.wsdl.UrlWsdlLoader.load(UrlWsdlLoader.java:184)
at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:121)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:535)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:524)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我验证了该URL上的应用程序已启动并运行,我可以从Web浏览器访问WSDL,但无论如何我都会收到此错误消息.我在Windows 7机器上使用SoapUI 4.5.0(32位).我也尝试了64位版本,结果相同.无论我是否使用VPN,都会发生这种情况.
你知道为什么我会收到这个错误吗?