web-dev-qa-db-ja.com

WADL生成ツール

Java File REST serviceをパラメーターとして記述し、そこからwadlファイルを生成するツールはありますか?.

15
Sven Malvik

同じ問題がありました。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>

buildUri要素とpackagesResourceConfig要素に注意してください。プロジェクトの構成を反映するように変更する必要があります。プラグインのバージョンを変更することもできます(私は1.17を使用しました)。

2./docフォルダーを作成し、いくつかのファイルを追加します。

src/main/doc/フォルダーを作成し、以下の2つのファイルを作成します。

ファイル: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によって使用されます)を生成する必要があります。

必要に応じて編集して使用してください。

PS:これはmaven-wadl-pluginの非常に単純な使用法であることに注意してください。それはもっとたくさんのことができます。それをよりよく知るために、他の回答(Pavel Bucekによる)に記載されているZipファイルを参照してください。

20
acdcjunior

はい、Jerseyサンプルのgerenate-wadl [1]サンプルを参照してください(maven-wadl-pluginを探してください)。

[1] http://search.maven.org/remotecontent?filepath=com/Sun/jersey/samples/generate-wadl/1.12/generate-wadl-1.12-project.Zip

3
Pavel Bucek