在 Jersey 1.19.1 上禁用 WADL 生成
Disable WADL generation on Jersey 1.19.1
我在 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>
使用 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 会起作用。
明白了:在版本 1.19.x 上,参数名称需要像这样:
com.sun.jersey.config.feature.DisableWADL
我在 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>
使用 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 会起作用。
明白了:在版本 1.19.x 上,参数名称需要像这样:
com.sun.jersey.config.feature.DisableWADL