如何从wadl为RESTful服务创建客户端应用程序?

如何从wadl为RESTful服务创建客户端应用程序?,rest,spring-mvc,cxf,wadl,Rest,Spring Mvc,Cxf,Wadl,给定application.wadl文件,如何从wadl文件生成客户端应用程序(Spring或任何)和域对象 我试过: wadl2java https://genologics.com/files/permanent/API/2.5/application.wadl WADLToJava错误:java.lang.IllegalStateException:应为单个WADL资源元素 这是我通过查看源代码得出的结论: 正如所述,wadltojava正试图从“application”元素中获取“re

给定
application.wadl
文件,如何从wadl文件生成客户端应用程序(Spring或任何)和域对象

我试过:

wadl2java https://genologics.com/files/permanent/API/2.5/application.wadl
WADLToJava错误:java.lang.IllegalStateException:应为单个WADL资源元素

这是我通过查看源代码得出的结论:

正如所述,wadltojava正试图从“application”元素中获取“resources”元素,并期望它仅为一个

private void generateResourceClasses(Application app, GrammarInfo gInfo, 
                                         Set<String> typeClassNames, File src) {
        Element appElement = app.getAppElement();
        List<Element> resourcesEls = getWadlElements(appElement, "resources");
        if (resourcesEls.size() != 1) {
            throw new IllegalStateException("Single WADL resources element is expected");
        }

        List<Element> resourceEls = getWadlElements(resourcesEls.get(0), "resource");
        if (resourceEls.size() == 0) {
            throw new IllegalStateException("WADL has no resource elements");
        }
        ........
   }
中使用的命名空间是

但在您的WADL中,名称空间似乎与下面的不同,并且可能会引起问题

<wadl:application xmlns:wadl="http://research.sun.com/wadl/2006/10" xmlns:xs="http://www.w3.org/2001/XMLSchema">

似乎您正在使用CXF,因此根据我的理解,我建议您使用与生成WADL相同的框架

更新:
或者,在本地安装WADL和XSD,并手动将WADL中的名称空间修改为最新名称空间,然后重试。

谢谢提供详细信息。很高兴知道。不确定生成第三方wadl使用了什么框架。我使用了CXF_HOME\bin\wadl2java.bati如果您将WADL作为本地文件,然后尝试手动将名称空间更改为
http://wadl.dev.java.net/2009/02
,然后重试。如果您下载WADL,那么您可能还需要下载grammer XSD,并将它们保存在相同的位置/文件夹中。
public static final String WADL_NS = "http://wadl.dev.java.net/2009/02";
<wadl:application xmlns:wadl="http://research.sun.com/wadl/2006/10" xmlns:xs="http://www.w3.org/2001/XMLSchema">