使用resteasy时无法构造抽象类型的实例

时间:2016-09-15 19:44:29

标签: java jackson wildfly resteasy

我有一个扩展抽象类XjafAgent的类,该抽象类实现了一个名为Agent的接口。

我在Wildfly上运行并使用resteasy库的应用程序上执行以下代码:

ResteasyClient client = new ResteasyClientBuilder().build();
ResteasyWebTarget rtarget = client.target(url);
ConnectionManagerRestAPI rest = rtarget.proxy(ConnectionManagerRestAPI.class);
rest.moveAgent(getAgentReference(aid));

我的REST API方法标题moveAgent定义如下:

public void moveAgent(Agent agent);

所以它期望得到一些实现Agent接口的东西(这是一个扩展我的XjafAgent抽象类的类)。但是,当我执行此代码时,我收到以下错误:

problem: abstract types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information

现在,我发现通过在抽象类中添加以下代码行解决了一些问题:

@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")

我尝试将此注释添加到我的XjafAgent抽象类以及我的代理接口都无济于事。

所以主要问题是我没有发送具体类的对象,而是我的方法是接受实现给定接口的对象。知道如何解决这个问题吗?我对任何建议持开放态度。

0 个答案:

没有答案