WADL生成工具

17

有没有一种工具可以将描述REST服务的Java文件作为参数,并生成wadl文件。

2个回答

22

我遇到了同样的问题:正在使用RESTeasy并希望找到一种自动生成WADL的方法。

进行了一些研究,得出了以下解决方案。

1. 将以下内容添加到你的pom.xml文件中:

<build>
<plugins>
    <plugin>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>maven-wadl-plugin</artifactId>
        <version>1.17</version>
        <executions>
            <execution>
                <id>generate</id>
                <goals>
                    <goal>generate</goal>
                </goals>
                <phase>${javadoc-phase}</phase>
            </execution>
        </executions>
        <configuration>
            <wadlFile>${project.build.outputDirectory}/application.wadl
            </wadlFile>
            <formatWadlFile>true</formatWadlFile>
            <baseUri>http://example.com:8080/rest</baseUri>
            <packagesResourceConfig>
                <param>com.example.rs.resource</param>
            </packagesResourceConfig>
            <wadlGenerators>
                <wadlGeneratorDescription>
                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc
                    </className>
                    <properties>
                        <property>
                            <name>applicationDocsFile</name>
                            <value>${basedir}/src/main/doc/application-doc.xml</value>
                        </property>
                    </properties>
                </wadlGeneratorDescription>
                <wadlGeneratorDescription>
                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport
                    </className>
                    <properties>
                        <property>
                            <name>grammarsFile</name>
                            <value>${basedir}/src/main/doc/application-grammars.xml</value>
                        </property>
                    </properties>
                </wadlGeneratorDescription>
            </wadlGenerators>
        </configuration>
    </plugin>
</plugins>
</build>

请注意buildUripackagesResourceConfig元素。您需要将它们更改以反映您的项目配置。您可能还想更改插件的版本(我使用了1.17)。

2. 创建/doc文件夹并添加一些文件。

创建src/main/doc/文件夹,并创建以下两个文件。

文件:application-doc.xml

内容:

<?xml version="1.0" encoding="UTF-8"?>
<applicationDocs targetNamespace="http://wadl.dev.java.net/2009/02">
    <doc xml:lang="en" title="A message in the WADL">This is added to the start of the generated application.wadl</doc>
</applicationDocs>

文件:application-grammars.xml

内容:

<?xml version="1.0" encoding="UTF-8" ?>
<grammars xmlns="http://wadl.dev.java.net/2009/02" />

3. 运行maven命令。

前往项目文件夹并运行以下命令:


$ mvn compile com.sun.jersey.contribs:maven-wadl-plugin:generate

需要生成文件\target\classes\application.wadl(WADL本身)和\target\classes\xsd0.xsd(资源的模式——它由application.wadl使用)。

您可以编辑并按照您的意愿使用它们。

附:请注意,这只是maven-wadl-plugin的一个非常简单的用法。它还可以做更多的事情。要了解更多,请参考其他答案中提到的zip文件(由Pavel Bucek提供)。


文档真的很不完整。packagesResourceConfig 是用来指定实际端点类所在的位置吗? - jiggy
1
@jiggy packagesResourceConfig 是 Java 包,其中包含您的资源(服务)类。 - acdcjunior
XSD 是如何生成的?没有任何产生。 - Grayson
1
感谢您提供详细的创建WADL提示。我在部署到TomEE Plume 7.0.4时,尝试运行NetBeans示例“CustomerDB”时遇到了问题,因为该设置不会自动生成WADL(因此缺少WADL)。现在需要解决WADL之外的下一个问题。 - Alz

3

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