从WSDL生成客户端存根

时间:2011-09-09 15:57:24

标签: java web-services wsdl webservices-client

我开始与商业供应商合作开展新项目。我需要在我们的应用程序中编写一个集成模块来使用商业供应商的Web服务。因此,WSDL不受我们控制。

我认为一般方法是进行“契约优先”开发并从WSDL文件生成存根。我想知道有哪些技术可以做到这一点?我真的很喜欢最简单的方法。我们广泛使用Maven 3.0.3和Spring 3.0.5。我可以使用Spring WebServiceTemplate吗?

如果问题不明确或需要其他详细信息,请与我们联系。

谢谢, Tapasvi

3 个答案:

答案 0 :(得分:5)

您可以为maven plugin生成JAX-WS的Java存根。然后,您可以使用spring中的存根将它们公开为Web服务。幸运的是,它非常简单:)。

只是一个建议,不要在每次构建项目时重新生成存根,因为(显然)你将无法向存根添加任何代码,有时非常有用。我很久以前犯了这个错误,这很痛苦,因为我不得不把代码放在它不属于的地方。在过去的几年里,我使用maven配置文件按需生成存根,然后我“手动”合并它们以添加额外的代码。当然,只有在WSDL不经常更改的情况下,这才是可行的。

答案 1 :(得分:4)

我使用过轴,最简单的方法是运行实用程序wsdl2java并传递webservice的位置以及?wdsl选项。

我知道很多IDE现在都可以从内部生成存根。 MyeclipseIDE有一个选择来摄取WSDL,所以IntelliJ。我认为更安全的方法是使用wsdl。此外,如果你使用jax-ws,你可以尝试

wsimport -keep -verbose位置到wsdl

答案 2 :(得分:4)

JAX-WS包含在标准Java 6发行版中,因此使用起来非常简单。

在JDK中生成带有wsimport的存根(记得尽可能多地启用警告,因为您想知道任何可能导致问题的事情)。