【发布时间】:2022-02-23 02:08:03
【问题描述】:
在JersyConfiguration 类中,我遇到了声纳工具的主要问题,例如将此调用从构造函数中删除到可覆盖的“注册”方法。我真的不明白什么代码更改可以解决这个问题。这是我的代码:
球衣配置
public class JerseyConfiguration extends ResourceConfig {
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);
objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
return objectMapper;
}
@Autowired
public JerseyConfiguration() {
register(TermsResourceImpl.class);
register(AccessIDResourceImpl.class);
register(CatalogResourceImpl.class);
register(SubmitOrderResourceImpl.class);
register(ValidateAndQuoteResourceImp.class);
property(ServletProperties.FILTER_FORWARD_ON_404, true);
register(DynamicLoggingFeature.class);
register(ContextFilter.class);
register(ServiceExceptionMapper.class);
register(JsonParseExceptionMapper.class, 1);
register(JsonMappingExceptionMapper.class, 1);
register(LoggingContextJerseyFilter.class);
register(FeatureToggleFilterBinder.class);
}
@Bean
public Client jerseyClient() {
return ClientBuilder.newClient(new ClientConfig());
}
}
ResourceConfig 覆盖方法
@Override
public ResourceConfig property(final String name, final Object value) {
state.property(name, value);
return this;
}
@Override
public ResourceConfig register(final Class<?> componentClass) {
invalidateCache();
state.register(componentClass);
return this;
}
SonarQube 问题
【问题讨论】:
-
@SotiriosDelimanolis 这可能是误报,因为它是有效的球衣代码blog.dejavu.sk/registering-resources-and-providers-in-jersey-2
-
是的,我正要添加另一个副本来抑制它。第一个正确解释了警告发生的原因。
-
我有类似的代码,SonarLint 没有发现任何代码气味,您如何检查您的代码?
-
@user7294900 在环境中部署我的代码后,我们检查声纳问题并显示此问题
-
我认为你应该在 SonarQube 网站上将其作为误报提出,或者至少在那里讨论