【问题标题】:Developing a Java based web service client开发基于 Java 的 Web 服务客户端
【发布时间】:2012-07-26 19:45:31
【问题描述】:

我有几个 Web 服务在 JBoss 5.1.0 GA 上运行,带有 JBossWs 本机堆栈(附带 JBoss 5.1.0 GA 二进制文件)

这些 Web 服务是简单的 POJO 服务。服务公开的许多 WebMethod 是复杂对象类型(我将这些复杂类型称为 DTO)和许多自定义定义的异常。这些 DTO 也捆绑在一个 jar 文件中,因此它们也可以在客户端使用。

我开始使用 Eclipse 创建客户端(据我所知,它是使用 wsconsume 生成客户端存根),我看到该实用程序会从 WSDL 生成 DTO,但我找不到任何强制该实用程序使用的方法jar 文件中提供的 DTO 和异常类。

我之前曾在 SO 上问过question on this,但找不到任何答案。

通过阅读 wsconsume 上的各种资源并使用 eclipse(将使用 JBossWS)生成客户端存根,我现在开始相信我试图实现的目标实际上可能无法使用 wsconsume。

我的问题是: 有没有更好的方法来创建一个使用 jar 文件中的 DTO 类的客户端存根。如果可能的话,我愿意更改客户端生成机制并移至轴或任何其他库以生成客户端。如果可以为客户端存根生成创建一个 ant 任务也是理想的。

PS:我对网络服务的了解非常有限,如果我在这里的问题很愚蠢,请原谅我。

【问题讨论】:

    标签: jboss axis2 jboss5.x webservice-client jbossws


    【解决方案1】:

    为什么要在 Web 服务中使用数据传输对象?那有必要吗?因为如果您使用此类对象,我认为这些 Web 服务只能在 Java 中使用。这是一个互操作性问题。因此,如果您可以避免使用这些对象,那将是一个好习惯。

    【讨论】:

    • 没有必要,因为这些 DTO 已经与客户端代码共享,我只是想重用它们,而不是从存根中获得一个完整的新集合。我不认为我在这里破坏了任何互操作性。我是吗?
    • 一个人可以使用您的 Web 服务,使用 DTO 未定义的语言吗?
    • 这更像是一个私有网络服务,只有我们编写的客户端才能使用。我们目前正在为它开发一个 Java 客户端。将来我们可能会有一个使用另一种语言的客户端(这些 DTO 将不可用,但他们仍然可以使用此 Web 服务)。
    猜你喜欢
    • 2010-10-08
    • 2014-09-04
    • 1970-01-01
    • 2010-11-09
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多