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

标签 java web-services apache-axis

我正在使用 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/

相关文章:

java - 使用 mongodb 的 Java 驱动程序时如何限制结果数?

java - 同步块(synchronized block)不阻塞对象

java - 没有与文件名或扩展名 "true"关联的序列化程序?

java - 通过 JNI 将双字节 (WCHAR) 字符串从 C++ 传递到 Java

java - 将 Jersey 和 RESTful Web 服务与 Weblogic 结合使用

java - 使用 Axis 2/JBoss Ws 调用 Web 服务超时

java - 如何记录契约(Contract)最后(通过 jaxb schemagen)web 服务?

sharepoint-2007 - Sharepoint 列表.asmx : remove "ows_MetaInfo" field from GetListItems method response xml

java - JOOQ 对 Axis2 Web 服务的支持

java - 如何从 Axis2 SOAP 响应中删除 header 属性