我正在开发一个项目,我有一个web服务模块和一个webmodule。我希望基于webservice的wsdl文件生成客户端,并且我希望在构建webservice模块时生成wsdl文件。
我找到了maven插件来执行此操作(axis2-java2wsdl-maven-plugin和axis2-wsdl2code-maven-plugin),但是axis2-java2wsdl-maven-plugin一直为wsdl文件生成无效的xsd(我认为它至少是无效的。)
webservice从其方法返回一些枚举,或返回包含枚举的对象。生成wsdl文件时,我得到对“xs:Enum”的引用,这两个枚举类型在给定的命名空间中不存在。我有几个,但只有两个得到这个base =“xs:Enum”。
<xs:complexType name="LoginType">
<xs:complexContent>
<xs:extension base="xs:Enum">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
因此,在使用axis2-wsdl2code-maven-plugin构建客户端模块时,出现以下错误:
error: src-resolve: type 'Enum@http://www.w3.org/2001/XMLSchema' not found.
我不明白为什么它一直生成无效的XSD!
答案 0 :(得分:4)
这已经很长一段时间了a known issue。这是我开始使用Apache CXF而不是Axis的(很多)原因之一。它甚至有a similar Maven Plugin。