当前位置: 首页 > 面试题库 >

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

魏凯捷
2023-03-14
问题内容

我正在使用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模式的一种应用。



 类似资料:
  • 我知道Netbeans可以从。wsdl文件生成Java方法。 Netbeans可以基于Java类及其所有方法创建。wsdl文件吗? https://netbeans.org/kb/docs/websvc/jax-ws.html 我知道怎么做那部分。我想知道是否有更好、更快的方法从我已经拥有的Java方法中开发出web服务。 假设我有一个Java接口类,它要求2个字符串输入并返回一个字符串: 那个包

  • 这里有一个关于如何在Spring中生成SOAP Web服务的很好的例子:https://spring.io/guides/gs/producing-web-service/ 此示例演示如何执行一个终结点和一个服务。如何通过多个服务和endpoint获得相同的结果?

  • 问题内容: 我想创建一个包含一个或多个容器的Docker容器。Docker有可能吗? 问题答案: 在docker内部运行docker绝对是可能的。最主要的是,您将外部容器具有额外的特权(以开头),然后在该容器中安装docker。 查看此博客文章以获取更多信息:Docker-in-Docker。 本条目中描述了一种可能的用例。该博客介绍了如何在Jenkins Docker容器中构建Docker容器。

  • 我在这里学习Web Push,然后成功地一步一步地构建示例通知Web应用程序,使用Push Companion,现在对于服务器端,我能够将消息发送到“fcm.googleapis.com”,然后任何订阅该endpoint(fcm.googleapis.com)的客户端都可以在网页关闭时收到通知。这很好,但我担心的是商业案例,出于安全原因,不可能将敏感数据发送到公司的开放endpoint,例如“fc

  • 问题内容: 我正在通过在资源上使用JAX-RS注释来使用CXF开发Web服务。这些注释指定参数名称,默认值以及有效的输入和输出mime类型。 能够在我的代码上运行一个javadoc-esque工具来生成该接口的简洁文档集将是很好的,但是我似乎找不到任何东西。 由javadoc本身生成的文档将需要进行大量精简,我确实想要一些能够理解JAX-RS注释的语义并为想要使用我的服务的开发人员提供友好信息的工

  • 问题内容: 据我所知,“ …”表示下面代码段中数组的长度。 另一方面,正如我猜想的那样,“ …”表示将以下代码段中的切片拆分为int的参数。我对此不太确定。 现在,两种含义的差异使我很难理解“ …”是什么。 问题答案: 您已经注意到Go中的两种情况。实际上,有3个: 在编译时 评估为[3] int {1,2,3} 解压缩作为函数的参数。这与您错过的一个(可变参数的定义)相匹配: 现在是另一个问题(