Java Spring ws VS Apache cxf VS Apache Axis2 VS Metro

Java Spring ws VS Apache cxf VS Apache Axis2 VS Metro,java,jax-ws,cxf,axis2,spring-ws,Java,Jax Ws,Cxf,Axis2,Spring Ws,我需要创建soapweb服务。我已经有了wsdl、接口和实现(作为pojo) 我现在在两个主题之间进行选择。 我需要的框架将: 在servlet容器中充当servlet 在my web.xml中只需要一个servlet映射 具有良好的spring集成(因为我的服务实现是Springbean) 不需要我添加注释。我的接口或实现上没有注释 SpringWS:看起来很酷,但据我所知,它迫使我直接处理XML,这是我不想做的。我希望框架对消息进行反序列化,并将其作为参数传递给我的POJO ApacheC

我需要创建soapweb服务。我已经有了wsdl、接口和实现(作为pojo)

我现在在两个主题之间进行选择。 我需要的框架将:

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

  • SpringWS:看起来很酷,但据我所知,它迫使我直接处理XML,这是我不想做的。我希望框架对消息进行反序列化,并将其作为参数传递给我的POJO

  • ApacheCXF功能强大,具有spring集成,但如果我使用Jax WS前端,我将不得不使用注释,我不想触碰我的POJO。那么简单的前端呢

  • Metro是Jax WS RI,因此它严重依赖于注释

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


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

考虑到您的需求,我认为Spring WS非常适合您。您不需要直接处理XML。Spring将序列化/反序列化许多类型的对象,包括所有数据传输对象。它们应该只是带注释的JAXB实体。查看以下信息:


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

谢谢,但我已经有DTO,它们没有jaxb注释:)我可以让Spring WS使用它们吗?还是应该生成新的?您没有访问源代码的权限,所以现在就可以注释它们了吗?它们与您的WSDL匹配吗?另一种方法是从WSDL生成DTO对象,然后将这些对象映射到您已经存在的类,尽管如果您不需要它,这需要很多额外的代码。是的,它们是匹配的。我没有访问源代码的权限。看起来我需要解释我的情况,我会编辑我的原始帖子,好吗?使用spring可以使用不同的封送器。看看castor marshaller,我没有亲自使用它,但我认为它不需要像JAXB那样的注释,它可能只适合您。但在可能的封送员/解封员列表中没有castor。只有OXM存在:。无论如何,这是关于DTO的。服务呢?如果spring没有注释,我如何配置它来查找我的端点?Marshaller是“sws:annotation-driven”标记的参数,但我不想jave注释驱动的代码。我完全迷路了:(