2017-02-21 79 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

相关问题