我正在使用 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?
也许应该使用来自java2wsdl
的额外类
选项参数?
最佳答案
不,这是不可能的,因为 Axis2 生成工具以代码优先的方式将 Java 类:WSDL 映射为 1:1。假设,他们可以提供将多个 Java 类映射到单个 WSDL 的功能(这需要生成工具中的附加参数)。
Axis2 对附加类型使用“额外类” - 用作输入/输出的原始复杂类型的子类。
如果整洁紧凑的代码是唯一的问题,我建议将其重构为仅一个类定义所有必需的操作,但将执行委托(delegate)给特定且适当的(多个)类。这可以被认为是 Façade pattern 的应用。 .
关于java - 使用 `java2wsdl` 生成的 Web 服务是否可以包含来自多个 Java 类的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13644630/