【发布时间】:2016-10-10 16:23:41
【问题描述】:
我正在使用 Java Jersey 框架(带有 Maven),并使用 IntelliJ 作为我的 IDE。我遇到了这个运行时异常,仅当我尝试从命令行运行代码时(使用 maven 编译然后 java -jar )而不是在 IntelliJ 中运行时发生,这很奇怪。
我有一些 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 依赖项:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.23</version>
</dependency>
这是我试图将Entity()读入的POJO类:
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ParseResponse {
@JsonProperty("id")
private Integer id;
...Other params...
}
就像我之前提到的,奇怪的是只有当我尝试像这样在命令行上运行但在 IntelliJ 中运行时没有错误时才会发生这种情况:
mvn clean package
java -jar target/NameOfJar.jar
我在这里错过了什么明显的东西吗?我在网上看过其他有类似问题的人,但没有找到解决方案。
谢谢 是
【问题讨论】:
标签: java json maven intellij-idea jersey