Web services 解析REST与SOAP web服务

Web services 解析REST与SOAP web服务,web-services,rest,axis2,restful-architecture,Web Services,Rest,Axis2,Restful Architecture,我正在使用公共RESTful API。服务很好,但我在任何地方都找不到WADL。因此,在接收到流时,我只需使用标准DOM对其进行解析,并将其转换为我的POJO(org.w3c.DOM) 然而,几年前,我使用SOAP服务并使用Axis2,在Axis2中,我能够生成相关的客户机类,使用Axis2附带的实用程序将服务打包成Java 我想知道是否有一个类似的REST API,如果我有WADL,我可以用它做类似的事情。我现在这样做并不可怕,而且速度很快,只是看起来过时了。首先,并不是所有RESTful服务

我正在使用公共RESTful API。服务很好,但我在任何地方都找不到WADL。因此,在接收到流时,我只需使用标准DOM对其进行解析,并将其转换为我的POJO(org.w3c.DOM)

然而,几年前,我使用SOAP服务并使用Axis2,在Axis2中,我能够生成相关的客户机类,使用Axis2附带的实用程序将服务打包成Java


我想知道是否有一个类似的REST API,如果我有WADL,我可以用它做类似的事情。我现在这样做并不可怕,而且速度很快,只是看起来过时了。

首先,并不是所有RESTful服务都会发布自己的WADL描述;没有要求他们这样做,一些人强烈认为这样做是错误的,提供你所做的描述违反了HATEOAS原则。但从你的角度来看,这真的离题了

您想要的是为传递的XML文档获取XSD模式;虽然完整的WADL可能不可用,但架构可能不可用。否则,您可以根据发送的消息编写一个。(为了做好DOM解析工作,您已经需要对其中实际包含的数据有一个很好的了解;剩下的只是语法。)如果您自己编写,请使用GUI创作工具;有一些不错的免费版本(我过去在EclipseWTP中使用过,但这肯定不是唯一的版本),在纯文本编辑器中手工编写模式的速度很快


一旦您有了一个模式,就通过JAXB(特别是工具)将其提供给您,它将为您生成绑定类。你仍然需要做一些工作来完成一个完整的客户端,但是这会使你从消息解析中摆脱困境,因为你可以利用它来完成繁琐的工作。

但是如果你真的专注于java - >REST > java生命周期,那么考虑使用SOAP。是的,这是一个有点老的学校-不是什么酷孩子正在使用-但成熟的工具要好得多。(这也是件好事;手工处理WSDL非常糟糕。)REST服务是第三方的——我只是在使用它们。目前,我使用Java中的DOM解析XML,并在没有自动XMLJava编组的情况下创建对象。这个应用程序运行得很好,我只是认为会有一个框架,让我可以像Hibernate那样将(XSD)模式映射到Java对象ORM@foampileJAXB(xjc工具是其中的一部分)进行模式对象映射;这就是你要找的。(严格来说,它将模式映射到类型,将XML文档映射到对象,反之亦然。但您明白我的意思。)