Последние версии:
Цитирование Глава 49. Поддержка RESTEasy WADL :
Глава 49. Поддержка RESTEasy WADL
49,1.Поддержка RESTEasy WADL для контейнера сервлетов
49.2.Поддержка RESTEasy WADL для HTTP-сервера Sun JDK
49.3.Поддержка RESTEasy WADL для Netty Container
49.4.Поддержка RESTEasy WADL для контейнера Undertow
RESTEasy имеет собственную поддержку создания WADL для своих ресурсов и поддерживает несколько различных контейнеров.Следующий текст покажет вам, как использовать эту функцию в разных контейнерах.
49.1.Поддержка RESTEasy WADL для контейнера сервлетов
RESTEasy WADL использует ResteasyWadlServlet
для поддержки контейнера сервлетов.Его можно зарегистрировать в web.xml
, чтобы включить функцию WADL.Вот пример, показывающий использование ResteasyWadlServlet
в web.xml
:
<servlet>
<servlet-name>RESTEasy WADL</servlet-name>
<servlet-class>org.jboss.resteasy.wadl.ResteasyWadlServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RESTEasy WADL</servlet-name>
<url-pattern>/application.xml</url-pattern>
</servlet-mapping>
Предыдущая конфигурация в web.xml
показывает, как включить ResteasyWadlServlet
и сопоставить его с /application.xml
.И затем к WADL можно получить доступ с настроенного URL:
/application.xml
Обходной путь для более старых версий
Существует обходной путь: плагин maven с именем maven-wadl-plugin
Джерси, который также работает для генерации WADL для сервисов, закодированных с использованием RESTEasy.
Вот как это использовать.
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>
Обратите внимание на элементы baseUri
и packagesResourceConfig
.Вы должны изменить их, чтобы они отражали конфигурацию вашего проекта.Вы также можете изменить версию плагина (я использовал 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
(схемаресурсы - он используется приложением. wadl) должен быть сгенерирован.
Редактируйте и используйте их по своему усмотрению.
PS .: Помните, что это очень простое использование maven-wadl-плагин.Это может сделать намного больше.Чтобы узнать это лучше, обратитесь к zip-файлу в http://search.maven.org/remotecontent?filepath=com/sun/jersey/samples/generate-wadl/1.12/generate-wadl-1.12-project.zip