Je réponds à ma propre question de partager ce que j'appris.
Définissez une sous-classe de WadlGeneratorConfig, où vous définissez une grammaire WadlGenerator qui ne fait rien.
package com.try1234;
import java.util.List;
import com.sun.jersey.api.wadl.config.WadlGeneratorConfig;
import com.sun.jersey.api.wadl.config.WadlGeneratorDescription;
import com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport;
public class PlughWadlGeneratorConfig extends WadlGeneratorConfig
{
@Override
public List<WadlGeneratorDescription> configure()
{
return
generator(WadlGeneratorGrammarsSupport.class)
.prop("grammarsStream", "application-grammars.xml")
.prop("overrideGrammars", true)
.descriptions();
}
}
Définition d'une application vide grammars.xml
<grammars xmlns="http://wadl.dev.java.net/2009/02"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xi="http://www.w3.org/1999/XML/xinclude">
</grammars>
Assurez-vous qu'il est sur le chemin de classe pour la webapp, par exemple, dans une structure de répertoire de style Maven, le fichier se trouve dans target/classes .
Modifiez votre fichier web.xml pour utiliser la sous-classe de WadlGeneratorConfig. Ajoutez ces lignes:
<init-param>
<param-name>com.sun.jersey.config.property.WadlGeneratorConfig</param-name>
<param-value>com.try1234.PlughWadlGeneratorConfig</param-value>
</init-param>
Chargez votre application Web, l'EEG suivante sur cette URL devrait fonctionner:
https://localhost/plugh/application.wadl
Cette solution fonctionne pour Jersey 1,18.
Remarque: La raison d'être de l'élément de grammaire vide est que j'avais couru dans https://java.net/jira/browse/JAXB-411; en n'en produisant aucun, j'ai pu éviter l'exception IllegalArgumentException.
Références: http://razvancaraghin.blogspot.com/2014/01/html-documentation-for-your-rest.html
Troubles with WADL/generated XSD using Jersey with a contract-first approach