Resteasy 2.3.10.Final ClientResponse.readEntity AbstractMethodError

时间:2017-09-20 14:31:24

标签: java maven resteasy

我目前正在尝试创建Resteasy客户端,必须使用版本2.3.10.Final。不幸的是,我不应该使用更新的版本。我对此非常陌生,所以我希望我能够提供所有必需的信息,以使这个问题得到回答。

首先,创建请求,最后创建“PUT”。返回的ClientResponse将被评估。

我可以成功致电

Response.getStatus()

向我显示“PUT”已成功,因为状态等于

Response.Status.CREATED.getStatusCode()

但是,任何调用response.readEntity的尝试都会返回错误

java.lang.AbstractMethodError: javax.ws.rs.core.Response.readEntity(Ljava/lang/Class;)Ljava/lang/Object;
at blabla.evaluateResponse(MyResteasyClient.java:80)´

这适用于任何调用.readEntity的尝试,但为了特殊起见,让我们专注于

String entity = Response.readEntity(String.class);

尝试response.getEntity()时,它返回以下错误消息:

java.lang.RuntimeException: RESTEASY001555: No type information to extract entity with, use other getEntity() methods
at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:337)
at blabla.evaluateResponse(MyResteasyClient.java:81)

我是否在正确的轨道上?我的目标是实现以下目标:

List<? extends MyResponse> myResponses = response.readEntity(new GenericType<List<MyResponse>>() {});

“MyResponse”类是接口的实现

public interface MyPartialResponse {
boolean isSuccessful();
String getMessage();
}

pom.xml中的依赖项是:

<properties>
    <version.jackson>2.6.5</version.jackson>
    <version.resteasy-client>2.3.10.Final</version.resteasy-client>
</properties>

<dependencies>
    (removed a company specific dependency)
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>${version.resteasy-client}</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>${version.resteasy-client}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${version.jackson}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${version.jackson}</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.6</version>
    </dependency>
</dependencies>

2 个答案:

答案 0 :(得分:0)

我认为Maven中的Jar文件之间存在冲突。请检查您的maven依赖关系层次结构。

答案 1 :(得分:0)

如果有人碰巧在这个问题上遇到同样的错误,请让我提供答案,我是如何解决我的问题的:

添加

BaseClientResponse<?> r = (BaseClientResponse<?>) response;

我可以成功致电

r.getEntity(new GenericType<List<MyResponse>>() {});