使用“java2wsdl”生成的 Web 服务是否可以包含来自多个 Java 类的 API?

2024-04-18

我正在使用 Axis2 来运行 Web 服务。这里有一个services.xml定义服务的文件:

<service name="XEWS" scope="transportsession" class="com.mc.xews.XEWS">
<messageReceivers>
    <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass" locked="false">com.mc.xews.XEWS</parameter>

我的问题是整个 API 位于一个 Java 文件中XEWS.java这个类被发送到java2wsdl。有没有一种方法可以将多个类作为输入java2wsdl?该文件用于WSDL生成网络服务。现在我只使用一个类作为输入java2wsdl,所以这个类变得很大,因为有很多 API 函数……如果我知道如何将多个文件发送到 java2wsdl,那么这些函数可以很好地分组在单独的类中。从此类生成的 JavaDocs 文档也很难阅读。

Web 服务是否可以包含来自多个 Java 类的 API?

也许是extra classes选项参数来自java2wsdl应该用于此目的?


不,这是不可能的,因为 Axis2 生成工具以代码优先的方式将 Java 类:WSDL 映射为 1:1。假设,他们可以提供将多个 Java 类映射到单个 WSDL 的功能(这需要生成工具中的附加参数)。

Axis2 对附加类型使用“额外类” - 用作输入/输出的原始复杂类型的子类。

如果整洁和紧凑的代码是唯一的问题,我建议将其重构为仅一个类定义所有所需操作,但将执行委托给特定且适当的(多个)类。这可以被认为是一个应用立面图案 http://en.wikipedia.org/wiki/Facade_pattern.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“java2wsdl”生成的 Web 服务是否可以包含来自多个 Java 类的 API? 的相关文章

随机推荐