java - 如何使用 Apache CXF 的工具 "wsdl2java"删除包名称

标签 java web-services apache cxf wsdl2java

这就是我的问题。

我正在使用 wsdl2java 工具,将我的 Web 服务转换为 Java API。 问题是,当我生成 java stub 时,我的代码包含类似的内容:

public void function(com.xxxxx.ssssss.Myclass myclass){...}

我的问题是:

如何从整个代码中删除这部分“com.xxxxx.sssss.”,并将其放入导入部分,以及所有这些,而不是手动,因为它太长了。

谢谢

最佳答案

这些类中的绝大多数根本不应该被编辑;只需从 WSDL 生成它们并保留它们即可。是的,它们会很冗长,但您只能忍受这一点(当然,或者为 CXF 项目提供更好的代码生成器!)

可以编辑的一个类是使用-impl选项生成的骨架(…Impl.java)。事实上,这是您应该编辑的源文件,因为它将包含服务的实现逻辑,这是您的工作。您生成一次,然后可以根据需要更改它,前提是您实现了正确的接口(interface)并具有正确的注释。特别是,使用重构工具生成 import 声明是完全没问题的(我发现这在 Eclipse 中很容易做到;如果其他 Java IDE 不支持类似的东西,我会感到惊讶)。

如果您开始显着更改原始 WSDL,则唯一真正的美中不足就会出现。虽然添加和删除方法并不是太难处理,但更改越大,需要支持的工作就越多。您可能必须仔细考虑是否应该从头开始重新生成服务骨架,但这将花费您所有的更改;如果您希望经常这样做,那么最好将服务的大部分实际实现分解到工作器类中,这样您只需重建与 SOAP 服务的实际连接。 (幸运的是,使用 Spring DI 使这种因式分解非常易于管理,因此无论如何使用它都是一个好主意。)

关于java - 如何使用 Apache CXF 的工具 "wsdl2java"删除包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455798/

相关文章:

java - Java中的主线程什么时候停止?

web-services - 是否可以在 Glassfish 3.1 WebServices 中发布原始 WSDL?

apache - 正确设置重定向 410(已消失)

php - 重建 VM 后 apache2 中的 Symfony2 URL 404

linux - 在 OpenSuse 13.1 上启动 Apache 2.4.6 时出错

Javax 持久性错误 : Unknown Entity com. samplewebentities.Customer

java - "first type int, second type boolean"java

java - 如何将 Consumer<String> 传递给方法

java - Salesforce SOAP 连接命名空间问题

iphone - 与 iPhone 和 Web 服务双向同步