2017-02-21 34 views
1

例如,我想形式的東西:在Jersey中,如何指定只顯示資源的最小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> 

確保它是在類路徑的Web應用程序,例如,在一個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> 

加載Web應用程序,在此URL以下GET應該工作:

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

相關問題