球衣如何产生wadl,是否有一个计划

时间:2015-11-21 12:45:55

标签: java xml xml-parsing jersey jersey-2.0

我想解析由jersey生成的.wadl文件。但我不知道泽西如何生成wadl文件,并且是否有泽西使用的方案文件。实际上,我想找到scheme文件并使用xmlBeans来解析wadl文件。我想知道有没有其他方法可以做到这一点。我将不胜感激!

1 个答案:

答案 0 :(得分:0)

最简单的方法是查看resource class that generated the wadl response。您将看到model class it uses as the representationcom.sun.research.ws.wadl.Application,这是一个JAXB生成的类。如果查看containing package,您将看到构成完整wadl模型的所有其他模型类。

因为这些是JAXB类,所以您可以使用JAXB来解析使用Application类作为根模型类型的响应。

如果您使用的是Jersey客户端,则可以直接从Response

解组到Response response = target("application.wadl").request("application/xml").get(); Application wadlApp = response.readEntity(Application.class);
String

或者,如果您通过其他方式获得InputStreamString wadlString = ... JAXBContext context = JAXBContext.newInstance(Application.class); Unmarshaller unmarshaller = context.createUnmarshaller(); Application wadlApp = (Application)unmarshaller.unmarshal(new StringReader(wadlString)); ,则可以直接使用JAXB进行解组

jersey-server

这种方法的问题是类包含在jersey-server工件中。对于你正在做的事情,你可能不希望这个负载。

您也可以尝试使用xjc自己生成JAXB类,使用wadl.xsd Jersey使用。如果不是Jersey使用的相同模型类,我会想象你会变得相似。这样您就不需要依赖// maven directory structure (src/main/java) xjc -d src/main/java -p com.stackoverflow.jersey.wadl.test wadl.xsd

更新

所以我只是使用xjc测试生成JAXB类,使用上面的wadl.xml,它可以工作。它产生与Jersey

相同的类
{{1}}

然后,您可以使用上面的JAXB示例来解组使用生成的类。