我目前参与一个项目,需要将我们的系统集成到外部系统中。负责外部系统的公司提供了多个WSDL和相应的XSD文件(超过100个WSDL文件)。每个WSDL文件都包含有关各种服务的信息,而XSD文件则包含用于每个服务的类型信息。
我当前面临的问题是:当我从这些XSD文件生成Java类时,许多XSD文件包含相同的类型。假设几乎所有这些XSD文件都包含有关“用户”的信息。用户类型在所有XSD文件中均相同,并具有相同的命名空间。当从这些WSDL文件生成Java类并将它们放置在不同的包中时,我最终会得到超过一百个版本的相同类。如果我将所有Java类放在同一个包中,则会覆盖ObjectFactory。
因此,当我从一个WSDL文件生成Java类时,结果将为大约一百个Java类。其中五十个类在其他所有WSDL文件中都是相同的,其余的则只是该WSDL文件中独特的。
我的问题是:如何处理这些情况的最佳实践是什么?是否可以将所有这些WSDL文件合并为一个文件,然后从中生成类?或者,在生成Java类时,是否可以将所有公共类提取到单独的包中?
目前,我们使用Apache CXF和Maven(cxf-codegen-plugin)生成我们的类,然后进行一些手动操作。但是,我相信应该有更有效的方法来处理这个问题。
非常感谢您提供的所有帮助。
我当前面临的问题是:当我从这些XSD文件生成Java类时,许多XSD文件包含相同的类型。假设几乎所有这些XSD文件都包含有关“用户”的信息。用户类型在所有XSD文件中均相同,并具有相同的命名空间。当从这些WSDL文件生成Java类并将它们放置在不同的包中时,我最终会得到超过一百个版本的相同类。如果我将所有Java类放在同一个包中,则会覆盖ObjectFactory。
因此,当我从一个WSDL文件生成Java类时,结果将为大约一百个Java类。其中五十个类在其他所有WSDL文件中都是相同的,其余的则只是该WSDL文件中独特的。
我的问题是:如何处理这些情况的最佳实践是什么?是否可以将所有这些WSDL文件合并为一个文件,然后从中生成类?或者,在生成Java类时,是否可以将所有公共类提取到单独的包中?
目前,我们使用Apache CXF和Maven(cxf-codegen-plugin)生成我们的类,然后进行一些手动操作。但是,我相信应该有更有效的方法来处理这个问题。
非常感谢您提供的所有帮助。