2017-02-21 4 views
1

Например, я хочу что-то вида:В Джерси, как я могу указать минимальное application.wadl, которое показывает только ресурсы?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<application xmlns="http://wadl.dev.java.net/2009/02"> 
    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.18 11/22/2013 01:21 AM" /> 
    <grammars /> 
    <resources base="https://localhost/plugh/"> 
    .... 
    </resources> 
/application> 

ответ

0

Я ответить на свой собственный вопрос, чтобы поделиться тем, что я узнал.

Определите подкласс WadlGeneratorConfig, , где вы определяете грамматику WadlGenerator, которая ничего не делает.

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(); 
     } 
    } 

Определение пустого приложения-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> 

Убедитесь, что он находится на пути к классам для веб-приложение, например, в структуре каталогов в Maven стиле, файл находится в целевых/классов ,

Измените свой web.xml, чтобы использовать подкласс WadlGeneratorConfig. Добавьте эти строки:

<init-param> 
    <param-name>com.sun.jersey.config.property.WadlGeneratorConfig</param-name> 
    <param-value>com.try1234.PlughWadlGeneratorConfig</param-value> 
</init-param> 

Загрузите веб-приложение, следующий GET по этому URL должен работать:

https://localhost/plugh/application.wadl

Это решение работает для Джерси 1.18.

Примечание: Обоснование для элемента пустой грамматики таково, что Я столкнулся с https://java.net/jira/browse/JAXB-411; не производя никаких, я смог избежать исключения IllegalArgumentException.

Ссылки: http://razvancaraghin.blogspot.com/2014/01/html-documentation-for-your-rest.html

Troubles with WADL/generated XSD using Jersey with a contract-first approach

Смежные вопросы