我正在与商业供应商开始一个新项目。我需要在我们的应用程序中编写一个集成模块来使用商业供应商的 Web 服务。所以,WSDL 不受我们控制。
我认为一般方法是进行“合同优先”开发并从 WSDL 文件生成存根。我想知道有哪些技术可以做到这一点?我真的很喜欢最简单的方法。我们广泛使用 Maven 3.0.3 和 Spring 3.0.5。我可以使用 Spring WebServiceTemplate 吗?
如果问题不清楚或需要其他详细信息,请告诉我。
谢谢, 塔帕斯维
我正在与商业供应商开始一个新项目。我需要在我们的应用程序中编写一个集成模块来使用商业供应商的 Web 服务。所以,WSDL 不受我们控制。
我认为一般方法是进行“合同优先”开发并从 WSDL 文件生成存根。我想知道有哪些技术可以做到这一点?我真的很喜欢最简单的方法。我们广泛使用 Maven 3.0.3 和 Spring 3.0.5。我可以使用 Spring WebServiceTemplate 吗?
如果问题不清楚或需要其他详细信息,请告诉我。
谢谢, 塔帕斯维
您可以使用JAX-WS的maven 插件生成 java 存根。然后,您可以在spring中使用存根将它们公开为 Web 服务。幸运的是,这很简单:)。
只是一个建议,不要在每次构建项目时重新生成存根,因为(显然)您将无法向存根添加任何代码,这有时非常有用。我很久以前就犯过这个错误,这很痛苦,因为我不得不将代码放在不属于它的地方。在过去的几年里,我使用 maven 配置文件按需生成存根,然后我“手动”合并它们以添加额外的代码。当然,这只有在 WSDL 不经常更改的情况下才可行。
我使用了轴,最简单的方法是运行实用程序 wsdl2java 并将 web 服务的位置与 ?wdsl 选项一起传递。
我知道现在很多 IDE 都允许从内部生成存根。MyeclipseIDE 有一个摄取 WSDL 的选项,intelliJ 也有。我认为更安全的方法是使用 wsdl。另外,如果您使用的是 jax-ws,您可以尝试
wsimport -keep -verbose 位置到 wsdl
JAX-WS 包含在标准 Java 6 发行版中,使其非常易于使用。
在 JDK 中生成存根wsimport
(请记住启用尽可能多的警告,因为您想知道任何可能导致问题的东西)。