2015-01-09 23 views
0

我是一名Java程序员,创建了一个WSDL,定义了一个应该由其他公司的提供者实现的Web服务,这样我的系统就可以统一调用不同的提供者。 在Java中使用WSDL工作正常 - 我可以生成一起工作的服务器和客户端,并且Endpoint.publish(URL)尊重WSDL并仅通过aditional评论和替换的服务url进行发布。.NET在生成Web服务时可以保留WSDL吗?

现在的问题:其中一个提供程序使用.NET asmx来实现该服务,这似乎完全转换WSDL(通过获取https://<providers-service-url>?WSDL)和服务失败时,我使用我生成的类(从原始生成wsdl即可)调用服务。错误表示NPE的.NET等价物。指向正在运行的服务时,SOAPUI可以正常工作。

我相信提供商使用

wsdl.exe /serverInterface <my.wsdl> 

生成他的服务。

于是问题来任何.NET大师那里是:

提供商应该如何产生的服务,所以它与客户一起从原来的WSDL生成?

.NET服务可以保留原始WSDL,因此https://<providers-service-url>?WSDL与原始WSDL几乎相同吗?

感谢您的任何意见。

回答

0

WSDL实际上只是一种规范文档,它允许那些正在实现服务的人查看它所公开的方法以及终端等。我过去曾使用.NET来使用Java Web服务, WSDL文件真的起了一点作用。 .NET开发人员可以通过Visual Studio IDE简单地创建对该服务的引用。这将创建他需要的任何类来实现各种方法。当然,他必须知道安全模型是什么,才能实现正确的绑定。很多人会说Java对.NET并不好,在这方面肯定有克服的障碍,但我个人从来没有遇到过在.NET中无法使用的Java Web服务。 。

+0

谢谢埃里克,但我不确定我是否已经说清楚了。如果我忘记了原始的WSDL,生成客户端和使用提供者在.NET中创建的服务时,我没有任何问题,但是我需要从WSDL生成客户端类,让提供者使用.NET生成服务并然后将我的客户指向他的Web服务。但是由于他的生成服务的方式会改变服务(以及发布的WSDL),因此调用失败。所以在我的情况下,WSDL是这个问题的核心。 –