Потратив довольно много времени, я нашел проблему и затем нашел решение.
Задача
Проблема заключалась в том, что apache cxf по умолчанию маршаллер, то есть JAXB не учитывал аннотации атрибутов и, следовательно, репрезентировал поля как элементы вместо атрибутов.
Решение
Поскольку по умолчанию механизм сериализации и десериализации, т. Е. JAXB, не работал, поэтому мы должны переопределить это.
И здесь моя проблема была решена путем использования Джексона в качестве API для сериализации и десериализации.
Джексон, начиная с версии 2.0, предоставляет как JSON, так и XML-форматы, а также предоставляет специфические для xml аннотации к ним.
Использование @JacksonXmlProperty с атрибутом, установленным в значение true, и затем переопределение компонента ObjectMapper, как показано ниже, решило проблему.
@Bean
public ObjectMapper objectMapper(){
ObjectMapper objectMapper= new ObjectMapper();
//overriding apache cxf JAXB mapper to use jackson mapper.
AnnotationIntrospector introspector = new JacksonAnnotationIntrospector();
objectMapper.setAnnotationIntrospector(introspector);
return objectMapper;