我正在使用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
一起使用以生成Web服务。现在,我只使用一个类作为java2wsdl
的输入,因此这个类非常庞大,因为有许多API函数。...如果我知道如何将多个文件发送到java2wsdl,则可以将它们很好地分组为单独的类。从此类生成的JavaDocs文档也很难阅读。Web服务是否可以包含多个Java类的API?
也许应该使用
extra classes
中的java2wsdl
选项参数吗? 最佳答案
不,这是不可能的,因为Axis2生成工具以代码优先方式将Java类:WSDL映射为1:1。假设地,他们可能提供了将多个Java类映射到单个WSDL的功能(这将需要在生成工具中添加其他参数)。
Axis2将“额外类”用于其他类型-原始复杂类型的子类用作输入/输出。
如果整洁而紧凑的代码是唯一的问题,我建议将其重构为仅一个类定义所有必需的操作,但将执行委派给特定且适当的(多个)类。这可以被视为Façade pattern的应用。