2012-02-28 37 views

Respuesta

17

que tenían el mismo problema: estaba usando RESTeasy y quería encontrar una manera de generar el WADL automáticamente.

Hicimos una investigación y llegamos a la solución a continuación.

1. Agregar a su 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> 

Prestar atención a los elementos buildUri y packagesResourceConfig. Tienes que cambiarlos para reflejar la configuración de tu proyecto. También es posible que desee cambiar la versión del complemento (utilicé 1.17).

2. Cree una carpeta/doc y agregue algunos archivos.

Crea la carpeta src/main/doc/ y crea los dos archivos a continuación.

del archivo: aplicación doc.xml

contenido:

<?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> 

del archivo: aplicación grammars.xml

contenido:

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

3. correr el comando maven.

Ir a la carpeta del proyecto y ejecute el siguiente comando:

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

Los archivos \target\classes\application.wadl (el propio WADL) y \target\classes\xsd0.xsd (el esquema de los recursos - que es utilizado por el application.wadl) debe ser generada .

Edítelos y úselos como desee.

PD: Tenga en cuenta que este es un uso muy simple del plugin maven-wadl. Puede hacer mucho más. Para conocerlo mejor, consulte el archivo comprimido mencionado en la otra respuesta (por Pavel Bucek).

+0

La documentación es realmente deficiente. ¿Se supone 'packagesResourceConfig' en la ubicación de las clases con los puntos finales reales? – jiggy

+0

@jiggy 'packagesResourceConfig' es el paquete java donde se encuentran las clases de recursos (servicios). – acdcjunior

+0

¿Cómo se genera el xsd? Ninguno está siendo producido. – Grayson