我有一些Java代码会尝试在某个远程URL上进行HTTP GET并尝试将返回的JSON读入某些Lombok POJO:
String targetUrl = "some valid URL";
WebTarget webTarget = client.target(targetUrl);
Response response = webTarget.request(MediaType.APPLICATION_JSON_TYPE).get();
ParseResponse parseResponse = response.readEntity(ParseResponse.class);
我不知道为什么,但当它击中执行“readEntity()”方法的最后一行时,我将得到以下错误:
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/json; charset=utf-8
这很奇怪,因为我肯定在我的pom.xml中指定了jersey-media-json-jackson依赖项:
org.glassfish.jersey.media
jersey-media-json-jackson
2.23
这是我的POJO类,我试图将readEntity()转换为:
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ParseResponse {
@JsonProperty("id")
private Integer id;
...Other params...
}
就像我之前提到的那样,奇怪的是,只有当我尝试在命令行上运行时才会发生这种情况,但在IntelliJ中运行时没有错误:
mvn clean package
java -jar target/NameOfJar.jar
我错过了一些明显的东西吗?我在网上查看过类似问题的其他人,但没有找到解决方案.
谢谢
IS
本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/java-congminglingxingyunxingjarshichuxianmessagebodyprov.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 19, 2019 at 01:48 上午