如何从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">