从WSDL生成客户端存根

3
我在与商业供应商开始一个新项目。我需要在我们的应用程序中编写一个集成模块来消耗商业供应商的Web服务。因此,WSDL不受我们的控制。
我认为一般的方法是进行“契约优先”开发,并从WSDL文件生成存根。我想知道有哪些技术可用于此?我真的很希望能够使用最简单的方法。我们广泛使用Maven 3.0.3和Spring 3.0.5。我可以使用Spring WebServiceTemplate吗?
如果问题不清楚或需要其他详细信息,请告诉我。
谢谢, Tapasvi
3个回答

5
您可以使用maven插件JAX-WS生成java存根。 然后,您可以在spring中使用这些存根将其公开为Web服务。幸运的是,它非常简单 :)

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


只是留下我的反馈,这是我使用的方法(使用JAX-WS的Maven插件),我非常满意它的工作方式。 - tapasvi

4
我曾经使用过Axis,最简单的方法是运行wsdl2java工具,并传递webservice的位置以及?wdsl选项。
现在许多IDE都可以从内部生成存根。 MyeclipseIDE有一个选项来导入WSDL,IntelliJ也有相应的功能。但我认为更安全的方法是使用wsdl。此外,如果您正在使用jax-ws,可以尝试使用wsimport -keep -verbose命令加上wsdl的位置参数。

Eclipse JEE也支持Axis。 - umbr

4

JAX-WS已包含在标准Java 6发行版中,非常简单易用。

使用JDK中的wsimport生成存根(请记得启用尽可能多的警告,因为您想知道可能会引起问题的任何事情)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接