Я использую maven-jaxb2-plugin для генерации java-классов из службы wsdl, которую я импортировал в проект.
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration> <schemaDirectory>src/main/resources</schemaDirectory>
<schemaLanguage>WSDL</schemaLanguage>
<schemaIncludes>
<schemaInclude>blabla.wsdl</schemaInclude>
</schemaIncludes>
<bindingIncludes>
<bindingInclude>bindings.xjb</bindingInclude>
</bindingIncludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Это работало нормально, и для каждого объекта создавались функции компоновщика. Итак, основные функции .withParameter (Param param), которые устанавливают значение и возвращают себя.
К сожалению, аннотация XmlRootElement не была добавлена к основному запросу и объектам ответа. Я узнал, что вы можете добавить это, добавив плагин jasb2-basics-annotate и добавив аргумент -Xannotate в pom.
Результат:
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<args>
<arg>-Xannotate</arg>
</args>
<plugins>
<plugin> <groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.0</version>
</plugin>
</plugins>
<schemaDirectory>src/main/resources</schemaDirectory>
<schemaLanguage>WSDL</schemaLanguage>
<schemaIncludes>
<schemaInclude>blabla.wsdl</schemaInclude>
</schemaIncludes>
<bindingIncludes>
<bindingInclude>bindings.xjb</bindingInclude>
</bindingIncludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Это прекрасно работает для нужных мне аннотаций @XmlRootElement. К сожалению, функции компоновщика больше не генерируются. Теперь объекты имеют только геттеры и сеттеры.
Кто-нибудь знает, что вызывает это, и если есть способ заставить его генерировать эти функции снова?