如何从使用现有XSD类型的WSDL构建Java



我正在尝试创建一个使用现有类型的新web服务。这些类型是在我们从第三方收到的现有XSD以及匹配的JAR文件中定义的。如果我只是将XSD导入到我的WSDL中并构建Java(使用wsconsume),那么所有现有的类型也都会被构建。由于我们已经有了一个包含所有这些Java类型的JAR,所以我们不想再生成它们。

作为后备选项,我可以让ant删除这些冗余文件,但我宁愿找到一种方法,一开始就不生成它们。

有什么建议吗?

我的建议是使用Spring WebServices,它应该可以帮助您实现这样的实现,它:

  • 具有合同优先的原则,其中合同是XSD而不是WSDL
  • 允许您编写带有方法注释的@Endpoint类,例如@PayloadRoot,并使用JAR中的类型参数
  • 允许您使用<sws:dynamic-wsdl />生成WSDL

如果您得到的JAR有带有JAXB注释的类,那么您可以直接使用JAXB,如果没有,那么您总是可以使用其他绑定技术。

最新更新