Как выставить тип интерфейса Java через jax-rs - PullRequest
1 голос
/ 10 января 2012

Я использую реализацию jax-rs на Джерси. У меня есть объект домена, который возвращается ресурсом REST. Это выглядит так:

@XmlRootElement
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
@Data
public class SomeObject implements Serializable {

private static final long serialVersionUID = -3711391025272861884L;

private IInterface config;

@XmlElement
public IInterface getConfig() {
    return config;
}
}

Где IInterface - тип интерфейса Java.

Jax-ws говорит бомбы, говоря: Accessor null SomeObject: тип интерфейса не может быть типом xml. -> [Помощь 1]

Я погуглил и не понял, как это сделать. Как я могу сказать Jax-ws, как работать с этим интерфейсом?

1 Ответ

1 голос
/ 10 января 2012

Вы можете отобразить поля / свойства, которые имеют тип интерфейса, используя аннотацию @XmlElement для указания конкретного типа impl:

@XmlRootElement
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
@Data
public class SomeObject implements Serializable {

    private static final long serialVersionUID = -3711391025272861884L;

    private IInterface config;

    @XmlElement(type=IInterfaceImpl.class)
    public IInterface getConfig() {
        return config;
    }
}

Для получения дополнительной информации

...