如何使用Apache CXF的工具“wsdl2java”删除包的名称

时间:2012-09-17 08:46:10

标签: java web-services apache cxf wsdl2java

所以这是我的问题。

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

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

我的问题是:

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

谢谢

1 个答案:

答案 0 :(得分:2)

绝大多数这些课程根本不应该被编辑;只需从WSDL中生成它们并让它们独自存在。是的,它们会很冗长,但你只需要接受它(或者提供为CXF项目提供更好的代码生成器,当然!)

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

如果你开始显着改变原始的WSDL,唯一真正的美中之处就在于此。虽然添加和删除方法并不难以处理,但更改越大,支持的工作就越多。您可能需要仔细查看是否应该从头开始重新生成服务框架,但这将使您的所有更改付出代价;如果您希望这么做很多,那么将服务的实际实现分解为工作类是一个好主意,这样您只需要重建与SOAP服务的实际连接。 (幸运的是,使用Spring DI使得这种因式分解非常容易管理,因此使用无论如何是个好主意。)

相关问题