web-services - maven中基于wsdl文件生成wsdl文件和webservice客户端

标签 web-services maven-2 wsdl code-generation

我正在开发一个项目,其中有一个 Web 服务模块和一个 Web 模块。我希望基于webservice的wsdl文件生成一个客户端,我希望在构建webservice模块的时候生成wsdl文件。

我找到了执行此操作的 maven 插件(axis2-java2wsdl-maven-plugin 和 axis2-wsdl2code-maven-plugin),但是axis2-java2wsdl-maven-plugin 不断为 wsdl 文件生成无效的 xsd(我认为它在至少)。

Web 服务从其方法返回一些枚举,或返回包含枚举的对象。在生成 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!

最佳答案

这是a known issue很长一段时间。这是我开始使用 Apache CXF 的(许多)原​​因之一。而不是轴。它甚至还有 a similar Maven Plugin .

关于web-services - maven中基于wsdl文件生成wsdl文件和webservice客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017441/

相关文章:

java - PC 和 Android 之间的数据同步应用程序?

android - 如何将 token 存储在 android 的本地或 session 存储中?

java - 生成额外类的 WSDL 到 Java 代码方法

php - 如何获取给定城市的时间?

java - 从 findbugs 隐藏非 java 类

java - Maven-surefire-plugin 和 fork 模式

java - 在命令行上运行目标的所有绑定(bind)实例

c++ - C 和 C++ 中的 Web 服务

c++ - 从 C++ 调用网络服务