2017-02-21 1 views

Répondre

0

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