Spring bean作为Web服务

时间:2013-04-05 12:25:29

标签: web-services spring cxf axis2 spring-ws

对Web服务不熟悉。我有一个spring bean,我在其中使用Transactional注释进行数据库操作。 现在我需要将bean中的一个方法作为服务公开。 方法参数是Hashmap和POJO(如JPA实体)对象。返回类型是HashMap。

实施它的最佳方式是什么。

  1. 使用Axis2直接暴露bean。
  2. 在CXF中使用Spring-Ws。
  3. 在一个新的包装器类中编写一个新方法,该类接受Strings作为参数。 (这些字符串实际上是原始Map和POJO所需的)。 并根据原始方法的要求,将这些字符串分别设置为POJO和Map中的属性和对象。

  4. 第三种方法在我的情况下不适用,因为Map将包含几个需要存储在DB中的arraylists。所以我只能使用Map。

  5. 我应该选择SOAP还是RESt。 在旧团队的项目中,已经使用Axis2提供了两个Web服务。 我们使用spring 3(作为核心容器和ORM),Hibernate模板,Tomcat 6。

1 个答案:

答案 0 :(得分:1)

嗯,这个问题最好由你自己解答。我们只能在此提供哪些框架和技术可能最适合您的提示。为了提供任何提示,我们需要有关您项目的更多信息。

例如,SOAP和REST是两种本质上不同的技术。 SOAP协议必须使用XML作为信息介质,并且可以使用字面上的任何传输介质,例如, HTTP,电子邮件,JMS等。使用SOAP,服务端点和客户端之间的合同(WSDL规范)是接口描述。 REST协议可以使用任何信息媒体,例如JSON,XML,YAML等,但仅限于HTTP协议作为传输介质。这里,DELETE,GET,POST等HTTP方法是接口描述。

你说,你实际上在使用AXIS2。如果您对该框架的体验足够好,我建议您进一步使用它。 CXF只是另一个Web服务框架,不能与Spring-WS一起使用(但它可以与Spring Framework一起使用)。在这里,我会考虑每个框架都有其注意事项,需要一些时间来学习。