在maven中根据wsdl文件生成wsdl文件和webservice客户端

发布于 2024-11-07 16:03:56 字数 811 浏览 3 评论 0原文

我正在开发一个项目,其中有一个网络服务模块和一个网络模块。我希望根据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!

I am working on a project where I have a webservice module, and a webmodule. I want a client to be generated based on the wsdl file of the webservice, and I want the wsdl file to be generated when I build the webservice module.

I have found the maven plugins to do this(axis2-java2wsdl-maven-plugin and axis2-wsdl2code-maven-plugin), but the axis2-java2wsdl-maven-plugin keeps generating invalid xsd for the wsdl file(I think its invalid at least).

The webservice returns some enums from its methods, or returns objects that contain enums. When generating the wsdl file, I get a reference to "xs:Enum" which does not exist in the given namespace for two of the enum types. I have several, but only two of them gets this base="xs:Enum".

<xs:complexType name="LoginType">
    <xs:complexContent>
        <xs:extension base="xs:Enum">
            <xs:sequence/>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

So when building the client module with the axis2-wsdl2code-maven-plugin, I get the following error:

error: src-resolve: type 'Enum@http://www.w3.org/2001/XMLSchema' not found.

I don't understand why it keeps generating invalid XSD!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唠甜嗑 2024-11-14 16:03:56

很长一段时间以来,这一直是已知问题。这是我开始使用 Apache CXF 而不是 Axis 的(众多)原因之一。它甚至还有类似的 Maven 插件

This has been a known issue for a very long time. It's one of the (many) reasons I started using Apache CXF instead of Axis. It even has a similar Maven Plugin.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文