我将我的资源分成了界面-impl因为它更有意义,但是如果我让它扫描我的资源,最新版本的jersey似乎不支持此功能。 如何在web.xml中手动定义资源? 如果我在web.xml中手动定义资源隐含内容,是否可以使用? 谢谢亚历克斯 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
任何人都知道如何禁用自动发现并手动注册JacksonFeature,只是要完全确保万一在类路径中有多个提供者被使用?
默认情况下,一切正常,并注释了以下帮助程序的各行。 然后,我尝试手动注册JSON提供程序,因此取消注释行并指定
private void disableAutoDiscoveryAndUseJacksonProvider(ResourceConfig config) {
config.property(CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE, true);
// config.property(CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE, true);
// config.property(CommonProperties.JSON_PROCESSING_FEATURE_DISABLE, false);
config.register(JacksonFeature.class);
}
context.addServlet(new ServletHolder(new ServletContainer(config)), "/*");
将客户端用于以下情况时,相同的逻辑也适用:
javax.ws.rs.client.Client client =
javax.ws.rs.client.ClientBuilder.newBuilder().register(JacksonFeature.class).build();
编辑:由于我无法解决 ,我试图以显式方式复制默认行为。
ServletHolder holder = new ServletHolder(new ServletContainer()) // No Config
这样调用,然后仅将Jackson放在应用程序的路径中即可(对象正确反序列化),但是如果我将ResourceConfig明确指定为:
ResourceConfig config = new ResourceConfig();
//config.property(X,default)
ServletHolder holder = new ServletHolder(new ServletContainer(config));
我收到反序列化错误
我尝试通过指定CommonProperties。*的所有组合来显式地模仿默认行为,例如config.property(X,default),config.property(Y,default),但还是没有运气,后面有什么想法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.