我有一个扩展抽象类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抽象类以及我的代理接口都无济于事。
所以主要问题是我没有发送具体类的对象,而是我的方法是接受实现给定接口的对象。知道如何解决这个问题吗?我对任何建议持开放态度。