如何为Jira WADL生成Java客户端?

时间:2017-01-19 12:38:39

标签: java rest cxf jira wadl

所有

我尝试从Jira wadl描述符生成Java客户端,但它不起作用:   java.lang.IllegalStateException:预期单个WADL资源元素

使用的WADL文件:https://docs.atlassian.com/jira/REST/7.0.4/jira-rest-plugin.wadl

使用构建:

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-wadl2java-plugin</artifactId>
                <version>3.1.9</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                            <wadlOptions>
                                <wadlOption>
                                    <wadl>${basedir}/src/main/resources/jira-rest-plugin.wadl</wadl>
                                    <impl>true</impl>

                                    <packagename>com.mycompany.jira</packagename>
                                    <schemaPackagenames>
                                       <schemaPackagename>http://mycompany=com.mycompany.jira.schema</schemaPackagename>
                                    </schemaPackagenames>

                                </wadlOption>
                            </wadlOptions>
                        </configuration>
                        <goals>
                            <goal>wadl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

我希望他们在7.x中修复他们的WADL

任何让它发挥作用的人?

2 个答案:

答案 0 :(得分:0)

它看起来不像有效的WADL文件,它用输入,输入格式解释了各个服务。要使wadl2java插件正常工作,您需要使用类似于下面所示语法的WADL文件。

<application xmlns="http://research.sun.com/wadl/2006/10">
    <doc xmlns:jersey="http://jersey.dev.java.net/" 
            jersey:generatedBy="Jersey: 1.0-ea-SNAPSHOT 10/02/2008 12:17 PM"/>
    <resources base="http://localhost:9998/storage/">
        <resource path="/containers">
            <method name="GET" id="getContainers">
                <response>
                    <representation mediaType="application/xml"/>
                </response>
            </method>
            <!-- Next methods ->
        </resource>
     </resources>
  </application>

我想你唯一的方法就是联系atlassian提供有效的WADL文件(如果是支持),否则你可能需要使用自上而下的方法并实现你共享的链接中显示的语法

答案 1 :(得分:0)

以下是一些其他信息, 1)转到您的特定服务器版本api docs url。 例如:-https://docs.atlassian.com/software/jira/docs/api/REST/7.12.3/

2)在末尾附加“ jira-rest-plugin.wadl”,然后按Enter 这将下载您想要的特定版本的wadl

3)在Apimatic.io中免费注册并登录

4)使用转换器上载wadl并指定输出格式(Swagger openapi v2.0或3.0,或邮递员等)

5)这将生成并下载swagger.json