【问题标题】:Disable WADL generation on Jersey 1.19.1在 Jersey 1.19.1 上禁用 WADL 生成
【发布时间】:2017-04-10 16:12:13
【问题描述】:

我在一个带有 Java+Jboss 的 Web 项目中使用 Jersey 1.19.1。

每次我从 Web 服务请求某些内容时,它都会在 server.log 上显示此条目:

ERROR [STDERR] com.sun.jersey.server.wadl.generators.AbstractWadlGeneratorGrammarGenerator attachTypes
INFO: Couldn't find grammar element for class java.lang.String

搜索如何禁用它,我发现了这个:

    <init-param>
        <param-name>com.sun.jersey.config.server.wadl.DisableWADL</param-name>
        <param-value>true</param-value>
    </init-param>

但这对我来说并没有改变。

如何禁用 WADL,让这条烦人的消息不再出现?

这是 servlet 的完整条目:

<servlet>
    <servlet-name>windi-mobile-service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.server.wadl.DisableWADL</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>br.com.altimus.mobile.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

【问题讨论】:

    标签: java jersey wadl


    【解决方案1】:

    想通了:在 1.19.x 版本上,参数名称需要是这样的:

    com.sun.jersey.config.feature.DisableWADL
    

    【讨论】:

      【解决方案2】:

      使用 ApplicationConfig 禁用以下属性

      jersey.config.server.wadl.disableWadl = "true"

            @ApplicationPath("/rest")
          public class ApplicationConfig extends Application {
      
      
              @Override
              public Map<String, Object> getProperties() {
      
                  Map<String, Object> properties = new HashMap<String, Object>();
                  properties.put("jersey.config.server.provider.packages", "com.study.rest");
                  properties.put("jersey.config.server.wadl.disableWadl", "true");
                  properties.put("jersey.config.server.provider.classnames","org.glassfish.jersey.media.multipart.MultiPartFeature");
                  properties.put(CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER,"0");
                  System.out.println("getProperties:-> CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_SERVER :" + CommonProperties.getValue(properties,CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER,String.class));
                  return properties;
              }
      }
      

      你能不能检查一下 DisableWADL disableWadl 会起作用。

      【讨论】:

      • 是的,部分正确!我只需要添加“com”。在您使用的参数名称的开头(在 web.xml 上),它起作用了。谢谢。
      • 这可能是由于球衣版本不同。
      • 糟糕,我的错误:它不起作用...我正在查看不同的日志文件。我用 com.sun.jersey.config.server.wadl.disableWadl 和 jersey.config.server.wadl.disableWadl 试过了,都没有用……
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 2014-12-21
      • 2019-04-14
      相关资源
      最近更新 更多