【问题标题】:CXF Wsdl2Java Best Practice [closed]CXF Wsdl2Java 最佳实践 [关闭]
【发布时间】:2011-09-01 06:50:58
【问题描述】:

我目前正在使用 cxf 2.4.0,并且我的代码是 Web 服务的调用者。我能够使用 Maven 中的 cxf 插件生成客户端 java 文件。我的问题是生成文件的最佳实践是什么?我应该编译生成的文件并将生成的类文件打包成一个 jar 文件还是应该在构建路径中包含所有生成的 java 文件?

【问题讨论】:

    标签: cxf wsdl2java


    【解决方案1】:

    我让CXF在target下生成代码,它默认选择target/generated-sources/cxf,这对我来说很好。 (如果您使用 xjc 来处理模式,它使用类似的方案。Maven 非常适合约定!)

    我有时会将生成的代码放在自己的maven模块中,这有时可以简化事情; Eclipse 对生成的源代码并不完全满意(它不喜欢清理会将源代码从它的脚下撕下来的事实),因此将其放在视线之外会使事情变得更简单。毕竟,它只是一个碰巧从 WSDL 文档生成的库……

    【讨论】:

    • 注意:无论您将 WSDL 文档放在项目中还是在编译期间从外部源下载它,这都可以正常工作;我更喜欢前者,因为它减少了可能出错的事情的数量(尤其是 WSDL 依赖项的 XSD 依赖项,有时会出现在不喜欢自动化客户端的服务器上)。
    • 为什么是目标而不是主要?我是 Java 开发新手,找不到目标是默认设置的原因。
    【解决方案2】:

    对于生成的代码,我通常在“main”(main/src/java - main/generated/java)下创建一个“generated”文件夹,并且我有 CXF 在那里生成类。然后我只是将“生成”文件夹添加到编译器源路径。

    【讨论】:

    • 谢谢!不将生成的类文件 jar 的原因是什么?是因为您的 Web 服务技术的依赖管理问题吗?生成的文件被锁定到特定版本的 CXF 并且难以升级和维护
    • 不,这只是一个偏好问题。如果您的 wsdl 经常更改,则必须重新生成源并重新创建 jar。如果您的 wsdl 是“静态的”,您可以很好地从生成的代码中创建一个 jar。我认为这里没有真正的最佳实践。
    【解决方案3】:

    创建生成代码并将编译后的代码打包成 jar 文件的构建任务(ant/maven)。当 wsdl 发生变化时,您只需重新运行构建任务即可。

    如果您选择生成源代码,请使用Generated 注释。大多数 wsdl 生成工具都有这个选项。

    【讨论】:

      猜你喜欢
      • 2013-10-02
      • 2010-10-06
      • 2011-10-28
      • 2010-09-10
      • 2011-10-11
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多