Ответ 1
Я могу подумать о двух способах решения проблемы:
- Исключить унаследованный класс
BarBean
из вашей конфигурации enunciate maven - Добавить
@XmlJavaTypeAdapter
аннотацию кBarBean#getBazBeans()
методу
Я опишу второе решение более подробно, потому что первое хорошо известно. Тип возврата getBazBeans()
является анонимным типом, что означает, что он не объявлен в вашем проекте. Вы можете изменить это с помощью javax.xml.bind.annotation.adapters.XmlAdapter
, подключив его к типу возвращаемых методов getBazBeans()
с помощью аннотации javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
import import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
public class BarBean {
@XmlJavaTypeAdapter( BazBeansAdapter.class )
Map<String, BazBean> getBazBeans() { /* ... */ }
}
public class BazBeansAdapter extends XmlAdapter<BazBeansContainer, Map<String, BayBean>> {
/*
Your implementation of serialization and deserialization.
Usually creating and reading the container object.
*/
}
public class BazBeansContainer {
private Map<String, BayBean> beans;
/* Getter, Setter, etc. */
}