简体   繁体   English

从现有的CXF休息服务生成wadl

[英]Generate wadl from existing CXF rest service

I have working JAX-RS service implemented with CXF. 我使用CXF实现了JAX-RS服务。 How can I generate wadl? 我怎样才能生成wadl? Or is there something like with jersey http://path.to.your/restapp/application.wadl out there already? 或者有没有像泽西http://path.to.your/restapp/application.wadl那样的东西? is there a maven plugin just like for wsdl, java to wsdl? 有没有像wsdl,java到wsdl的maven插件? I've searched for answers couldn't find. 我找到了找不到的答案。

如果您使用的是最新版本的CXF,只需使用?_wadl参数点击该服务即可。

There are a lot of possible ways to generate WADL using CXF: 使用CXF生成WADL有很多种可能的方法:

  1. You can sent REST call (using Postman , for example) to the base REST URL and it will automatically create WADL for all services available from there. 您可以将REST调用(例如,使用Postman )发送到基本REST URL,它将自动为那里提供的所有服务创建WADL。 It can help to structure REST API. 它可以帮助构建REST API。 For example: 例如:
  2. CXF 3.0.0 and 2.7.11 introduce java2wadl plugin for generating WADL at the build time. CXF 3.0.0和2.7.11引入了java2wadl插件,用于在构建时生成WADL。 Details clould be found here . 细节可以在这里找到。
  3. All available feature of CXF regarding WADL are located in CXF docs . CXF关于WADL的所有可用功能都位于CXF文档中

After WADL has been generated it would be nice to transform XML to more readable form. 在生成WADL之后,将XML转换为更易读的形式会很不错。 One of the solutions that I found was XSL usage to generate HTML. 我发现的解决方案之一是用于生成HTML的XSL用法。 I have used XSL from github project . 我从github项目中使用过XSL。 Steps to link XSL to XML and generate pretty HTML report: 将XSL链接到XML并生成漂亮的HTML报告的步骤:

  1. Download wadl.xsl; 下载wadl.xsl;
  2. Copy wadl.xsl to the folder that contains wadl.xml file that was generated by CXF; 将wadl.xsl复制到包含由CXF生成的wadl.xml文件的文件夹;
  3. Add required header to wadl.xml to the very beginning of the file: 将所需的标头添加到文件的最开头的wadl.xml:

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

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

  4. Replace in wadl.xml generated <application ...> header using <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 "> 使用<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 ">替换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. Add to every tag 'wadl' namespace. 添加到每个标记'wadl'命名空间。 For example: 例如:

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

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

  6. Open wadl.xml using IE 使用IE打开wadl.xml

  7. You will get something like this (example_wadl.xml from github project ): 你会得到这样的东西(来自github项目的 example_wadl.xml): 从WADL文件生成的HTML页面

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM