Как указать интерфейс для wsdl2java в pom.xml?

Я нашел отличный совет о добавлении -fe jaxws21 к команде wsdl2java, чтобы она генерировала код, совместимый с jaxws 2.1 вместо 2.2, но Maven pom.xml кажется, что это дополнение не нравится, когда оно расположено так:

            <goals>
                <goal>wsdl2java -fe jaxws21</goal>
            </goals>

Как правильно указать внешний интерфейс для wsdl2java, который используется в pom.xml?


person Withheld    schedule 31.12.2012    source источник


Ответы (3)


Если вы используете плагин cxf-codegen, вы можете добавить аргументы в элемент extraargs:

<executions>
    <execution>
        <configuration>
            <wsdlOptions>
                <wsdlOption>
                    <wsdl>...</wsdl>
                    <extraargs>
                        <extraarg>-fe</extraarg>
                        <extraarg>jaxws21</extraarg>
                    </extraargs>
                </wsdlOption>
            </wsdlOptions>
        </configuration>
        <goals>
            <goal>wsdl2java</goal>
        </goals>
    </execution>
</executions>

Источник: http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html

person tafit3    schedule 01.01.2013
comment
Вы также можете сделать ‹frontEnd›jaxws21‹/frontEnd› - person Daniel Kulp; 02.01.2013
comment
Вместо ‹wsdlOptions› я использовал ‹wsdlRoot›${basedir}/src/main/wsdl‹/wsdlRoot›. Теперь, как я должен обеспечить ‹extraarg› этим? - person Bhuvan; 20.05.2013

Вы можете использовать <frontEnd> внутри <wsdlOption> или <defaultOption>. Последнее полезно, если вы включаете несколько WSDL и указываете <wsdlRoot>:

<executions>
    <execution>
        <configuration>
            <defaultOptions>
                <frontEnd>jaxws21</frontEnd>
            </defaultOptions>
            <wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot>
            <includes>
                <include>*.wsdl</include>
            </includes>
        </configuration>
        <goals>
            <goal>wsdl2java</goal>
        </goals>
    </execution>
</executions>
person fishbone    schedule 20.11.2017

Чтобы дополнить ответы @fishbone и @tafit3, см. также Не удалось найти внешний интерфейс jaxws21 в пути к классам потому что похоже, что frontend был добавлен в младшую версию cxf.

Я попробовал их ответы, но все заработало только после обновления cxf-codegen-plugin до 2.3.11.

person Luis    schedule 08.05.2019