【问题标题】:Spring-ws VS Apache cxf VS Apache Axis2 VS MetroSpring-ws VS Apache cxf VS Apache Axis2 VS Metro
【发布时间】:2012-07-07 09:43:58
【问题描述】:

我需要创建肥皂网络服务。我已经有了 wsdl 和接口和实现(作为 pojo)。

我现在在主题之间进行选择。 我需要这样的框架:

  • 在 servlet 容器中作为 servlet 工作
  • 在我的 web.xml 中只需要一个 servlet 映射
  • 有良好的spring集成(因为我的服务实现是spring bean)
  • 不需要我添加注释。我的接口或实现上没有注释。

  • Spring-ws:看起来很酷,但据我了解,它迫使我直接处理我不想做的 XML。我希望框架反序列化消息并将其作为参数传递给我的 POJO。

  • Apache cxf 功能强大并且具有 spring 集成,但是如果我使用 Jax-WS 前端,我将不得不使用注释,而且我不想碰我的 POJO。简单的前端呢?

  • Metro 是 Jax-WS RI,因此严重依赖注释。

Axis2 似乎是我的选择。你会选择什么?


只想告诉我我想做什么: 我们的应用程序使用 SOAP 连接到远程服务。他们给了我们 WSDL,我们生成了代理类和 DTO,所有这些东西都打包在 jar 中并存储在 VCS 中。现在我需要为这个 Web 服务编写仿真。而且我不想生成新的 DTO。

【问题讨论】:

    标签: java jax-ws cxf axis2 spring-ws


    【解决方案1】:

    根据您的要求,我认为 Spring WS 非常适合您。您不需要直接处理 XML。 Spring 将序列化/反序列化多种类型的对象,包括所有数据传输对象。它们应该只是带注释的 JAXB 实体。查看此信息:http://static.springsource.org/spring-ws/sites/2.0/reference/html/server.html#d5e1063

    如果您已经有一个 WSDL,您可以从该 WSDL 生成您的 DTO 对象。有几种工具可以做到这一点,包括大多数 IDE。

    【讨论】:

    • 谢谢,但我已经有 DTO 并且它们没有 jaxb 注释:) 我可以让 Spring-WS 使用它们还是应该生成新的?
    • 您是否无权访问源代码以便现在对其进行注释?它们与您的 WSDL 匹配吗?另一种方法是从 WSDL 生成 DTO 对象,然后将这些对象映射到您已经存在的类,尽管如果您不需要它,那将是很多额外的代码。
    • 是的,它们匹配。我无权访问源代码。看来我需要解释一下我的情况,我会编辑我的原始帖子,好吗?
    • 使用 spring 你可以使用不同的编组器。查看 castor marshaller,我没有亲自使用过它,但我认为它不需要像 JAXB 那样的注释,它可能对你有用。 static.springsource.org/spring/docs/3.0.x/…
    • 但可能的编组器/解组器列表中没有脚轮。仅存在 OXM:static.springsource.org/spring-ws/sites/2.0/reference/html/…。无论如何,这是关于 DTO 的。那么服务呢?如果没有注释,我如何配置 spring 来找到我的端点? Marshaller 是“sws:annotation-driven”标签的参数,但我不想使用注释驱动代码。我完全输了:(
    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2018-07-08
    • 2012-08-13
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多