用maven shade插件构建后出现MessageBodyProviderNotFoundException[已解决] 。

问题描述 投票:1回答:1

嗨,我正在构建一个使用json的java REST客户端应用程序。我的依赖关系中有一个冲突:一个必要的依赖关系需要jackson databindcoreannotations 2.10.1,另一个必要的依赖关系使用了一个较旧的版本2.2.2。

当在Eclipse中运行该应用时,这导致了一个 MessageBodyProviderNotFoundException. 问题是maven包含了2.2.2版本,而不是2.10.1版本,所以我使用依赖管理来解决冲突,并包含2.10.1版本。所以我使用依赖管理来解决冲突,并包含2.10.1版本。在Eclipse中,这解决了问题,应用程序运行正常。

但在使用maven shade插件构建应用后,单机版应用仍然出现了失败的情况。MessageBodyProviderNotFoundException. 异常是在需要2.10.1版本的代码部分抛出的,而不是在依赖于2.2.2版本的部分。

有什么想法吗?先谢谢你

EDIT: 我检查了我的本地maven仓库,它只包含2.10.1版本。所以问题不在于这个jar不知为何还包含2.2.2版本。

java maven jackson jersey
1个回答
0
投票

问题解决了。在Eclipse中运行这个应用程序显然不需要明确注册一个 JacksonJsonProvider,但运行单机应用则。

ClientConfig config = new ClientConfig().connectorProvider(new ApacheConnectorProvider()).register(new JacksonJsonProvider());
Client client = ClientBuilder.newBuilder().withConfig(config) ...
© www.soinside.com 2019 - 2024. All rights reserved.