我正在尝试创建一个使用现有类型的新 Web 服务。这些类型是在我们从第三方收到的现有 XSD 以及匹配的 JAR 文件中定义的。如果我只是将该 XSD 导入到 WSDL 中并构建 Java(使用 wsconsume),那么也会构建所有现有类型。由于我们已经有一个包含所有这些 Java 类型的 JAR,因此我们不想再次生成它们。
作为后备选项,我可以让 ant 删除这些冗余文件,但我宁愿找到一种方法,一开始就不生成它们。
有什么建议吗?
最佳答案
我的建议是使用Spring WebServices这应该可以帮助您实现这样的实现,它:
- 具有契约优先的原则,其中契约是 XSD 而不是 WSDL
- 允许您写
@Endpoint
带有注释方法的类,例如@PayloadRoot
并使用您获得的 JAR 中的类型参数 - 允许您使用
<sws:dynamic-wsdl />
生成 WSDL
如果您获得的 JAR 具有带有 JAXB 注释的类,那么您可以直接使用 JAXB,如果没有 - 您始终可以使用其他绑定(bind)技术。
关于java - 如何从使用现有 XSD 类型的 WSDL 构建 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914214/