什么是使用Axis2构建Web服务的正确选择--AXIOM,JAXB,ADB或XMLBeans

chi*_*esh 6 java axis2 web-services jaxb axiom

Axis2支持使用AXIOM,JAXB,ADB和XMLBeans创建Web服务.我是Web服务开发领域的新手,想要使用Axis2创建Web服务.Web服务将非常简单,但我希望它能够经常更改.我觉得AXIOM很好,因为它允许您在service.xml文件中指定服务需求,然后相应地为您创建它.因此,我认为这将使我的生活变得更轻松,因为在我的Web服务中的任何更改我只需要通过.java类更改service.xml文件和一些代码来获取Web服务.但其他方法也各有优势.考虑到我的要求,您能告诉我在创建Web服务时应采用哪种方法吗?注意:我希望扩展对REST和SOAP Web服务的支持.

bdo*_*han 7

我首先承认我的偏见,即我领导MOXy JAXB实现,这引导我进入我的第一点.

1.有多个JAXB实现

由于JAXB是一个标准(JSR-222),因此有多种实现: Metro(参考实现),EclipseLink MOXy,Apache JaxMe等.如果您在一个实现中遇到show stopper bug,您可以尝试另一个.

2. JAXB是JAX-RS(RESTful Web服务)和JAX-WS(SOAP Web服务)的默认绑定层

JAXB是与JAX-WS一起设计的,而JAX-RS是为了利用JAXB而编写的.所有Java EE 5和Java EE 6应用程序服务器都支持JAXB.

3. JAXB支持Java 5功能,例如泛型和枚举

这对你来说可能是一个大问题,但JAXB支持泛型和枚举,而XML Beans则不支持.

4.单个实现具有非常有用的扩展

例如,MOXy具有基于XPath的映射,XML元数据文件和用于映射JPA实体的扩展的扩展: