从现有的CXF REST服务生成WADL

5

我有一个使用CXF实现的JAX-RS服务。如何生成wadl?或者是否已经有类似Jersey的http://path.to.your/restapp/application.wadl这样的东西了?是否有像wsdl一样的maven插件,可以将Java转换为wsdl?我搜索了答案,但没有找到。

2个回答

18
如果您正在使用较新版本的CXF,则只需通过?_wadl参数访问该服务。

4

有很多方法可以使用CXF生成WADL:

  1. 您可以发送REST调用(例如使用Postman)到基本的REST URL,它将自动为所有可用的服务创建WADL。 它可以帮助构建REST API。例如:
  2. CXF 3.0.0和2.7.11引入了java2wadl插件,用于在构建时生成WADL。详情请参见此处
  3. CXF中关于WADL的所有可用功能都位于CXF文档中。

生成WADL后,最好将XML转换为更易读的形式。 我发现的解决方案之一是使用XSL生成HTML。 我使用了来自github项目的XSL。 将XSL链接到XML并生成漂亮的HTML报告的步骤如下:

  1. 下载wadl.xsl;
  2. 将wadl.xsl复制到包含CXF生成的wadl.xml文件的文件夹中;
  3. 在文件的开头添加所需的标头:

    <?xml version="1.0" encoding="UTF-8"?>

    <?xml-stylesheet type="text/xsl" href="wadl.xsl"?>

  4. 使用以下代码替换wadl.xml中生成的<application ...>标头:

    <wadl:application xmlns:wadl="http://wadl.dev.java.net/2009/02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd ">
  5. 为每个标签添加'wadl'命名空间。例如:

    <resource> -> <wadl:resource>

    </resource> -> </wadl:resource>

  6. 使用IE打开wadl.xml

  7. 您将得到像这样的结果(来自github项目的example_wadl.xml):

    HTML page generated from WADL file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接