Swagger Codegen - отсутствуют аннотации Jaxb с помощью «jaxrs-spec» - PullRequest
0 голосов
/ 11 января 2019

Я использую 'jaxrs-spec' для генерации заглушек сервера, которые развернуты на сервере JEE (JBoss Wildfy).

Поскольку мне нужно, чтобы мои сгенерированные модели pojos были аннотированы аннотациями JAXB (например, @XmlRootElement), я включил опцию 'withXml'. Это работает очень хорошо с языком "Java", но не представляется возможным с "jaxrs-spec" . Верно ??

В результате из-за отсутствующих аннотаций JAXB ответы jaxrs моих веб-служб выдают неправильный xml (т.е. без объявления пространства имен), хотя пространство имен xml определено в файле yaml.

Кому-нибудь уже удалось создать аннотации jaxb в сочетании с языком jaxrs-spec? Любое решение?

Bernard.

<plugin>    
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.4.0</version>
    ... 
    <configuration>                 
        ...                 
        <language>jaxrs-spec</language>                                                                 
        <generateModels>true</generateModels>
        <withXml>true</withXml> 
        ...
    </configuration>

Пример сгенерированной модели:

@ApiModel
public class ReadingRequest {..}

Ожидаемое:

@ApiModel
@XmlRootElement(namespace="...") // <= missing !
public class ReadingRequest {..}

1 Ответ

0 голосов
/ 14 января 2019

Временно (?) Решено с помощью следующего обходного пути.

  • Переопределить оригинальный шаблон усов для Jaxrs-spec> Pojo, вдохновляющий чистый Java-шаблон .
  • Поместите модифицированный шаблон усов (с добавлением JAXB) под мой проект (например, src / main / resources / templates / pojo.mustache)
  • Обновите Maven конфигурацию плагина CodeGen, чтобы использовать этот дополнительный шаблон:
    <configuration>                   
      <templateDirectory>src/main/resources/templates</templateDirectory>
    </configuration>
...